Python 如何获取标有字典键的输出文件

Python 如何获取标有字典键的输出文件,python,pandas,Python,Pandas,我是python/pandas用户,我有一个多数据帧,如df1、df2、df3。。。。 我想把它们命名为A,B,C。。。因此,我写了如下 df_dict = {"A":df1, "B":df2,'C':df3,....} 每个数据帧都有Price列,我想知道以下公式的输出 frequency=df.groupby("Price").size()/len(df) 我做了以下定义,希望从每个数据帧获得输出 def Price_frequency(df,keys=["Price"]): f

我是python/pandas用户,我有一个多数据帧,如df1、df2、df3。。。。 我想把它们命名为A,B,C。。。因此,我写了如下

df_dict = {"A":df1, "B":df2,'C':df3,....}
每个数据帧都有Price列,我想知道以下公式的输出

frequency=df.groupby("Price").size()/len(df)
我做了以下定义,希望从每个数据帧获得输出

def Price_frequency(df,keys=["Price"]):
    frequency=df.groupby(keys).size()/len(df)
    return frequency.reset_index().to_csv("Output_%s.txt" %(df),sep='\t')
作为初审,我做到了 价格\频率DF1,键=[价格] 但这并不奏效。似乎%s是错误的

理想情况下,我希望输出文件名为output_A.txt、output_B.txt。。。
如果您能帮助我,我将非常感谢。

遍历列将获得输出

def Price_frequency(df):
    for col in df.columns[2:]
        frequency=df.groupby(col).size()/len(df)

    return frequency.reset_index().to_csv("Output_%s.txt" %(col),sep='\t')
参考:

注意:尚未对此进行测试有几点:

%s要求您输入一个字符串。但是在Python3.6+中,您可以使用格式化的字符串文本,您可能会发现这些文本更可读。 您的函数不需要在此处返回任何内容。您正在使用它以循环方式输出csv文件。如果返回语句不起作用,不要觉得有必要添加它。 因此,您可以执行以下操作:

def price_frequency(df_dict, df_name, keys=['Price']):
    frequency = df_dict[df_name].groupby(keys).size() / len(df_dict[df_name].index)
    frequency.reset_index().to_csv(f'Output_{df_name}.txt', sep='\t')

df_dict = {'A': df1, 'B': df2, 'C': df3}

for df_name in df:
    price_frequency(df_dict, df_name, keys=['Price'])

%s需要一个字符串和一个DataFrame,你可以在我得到你的数据后,遍历这些列来得到你想要的。谢谢!!