我有一个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
答案 0 :(得分:3)
.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')
答案 1 :(得分:0)
我没有看到输出路径和/或文件名,这应该是第一个参数。我认为这就是它因为没有看到第一个必要的输入而窒息的原因。看起来你正在传递一个pandas数据帧作为第一项。看这里 - http://pandas.pydata.org/pandas-docs/version/0.13.1/generated/pandas.DataFrame.to_csv.html
所以它应该是这样的:
outdf.to_csv('path\to\file', sep="\t")