我有一个DataFrame df,它已根据属性分组。我试图将每个组写入自己的csv文件。我尝试使用pandas.DataFrame.to_csv()方法。我收到以下错误。

outcsv = pd.DataFrame.to_csv(outdf, sep = "\t")
TypeError: to_csv() takes at least 2 arguments (2 given)


我正在使用的代码如下。

def groupChromosomes(filepath, groupbykey, sep):
import csv
import pandas as pd
df = pd.read_csv(filepath, sep = sep )
d2 = df.groupby(groupbykey)
for name, group in d2:
    with open(name+'.csv', 'w') as outfile:
        outdf = pd.DataFrame(group)
        #print outdf
        outcsv = pd.DataFrame.to_csv(outdf, sep = "\t")
        return outcsv

最佳答案

.to_csv()是数据框对象的一种方法,因此您应该从要导出的对象中调用它。另外,您实际上并不想从函数返回它,因为所有方法所做的都是写文件。

您的循环应如下所示:

for name, group in d2:
    # I'm not even sure if this step is necessary, you should
    # probably be able to do group.to_csv() directly
    outdf = pd.DataFrame(group)
    outdf.to_csv(name + '.csv', sep='\t')

07-28 02:52
查看更多