我有一个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')