我有一个大约2000个名字的大数据框,其中有其他信息和图表,与它们各自的名字相匹配。我想为数据框中的每个名称创建一个单独的文件(最好是excel文件,但csv有效)
df = pd.DataFrame({'name': ['Ben','Steve','Mary','Ben','Steve','Mary'], 'value': [1,2,3,4,5,6]})
这个问题与我想做的类似,只是它没有告诉您如何调用函数,以保存每个名称的CSV。 Writing multiple csv's from a function
我尝试过使用这个函数并为它创建一个输出路径。我也试过这样的方法:
import os
g = df.groupby('name')
for n,g in df.groupby('name'):
f_name = os.path.join('Desktop', str(n), 'Report.csv')
g.to_csv(f_name)
def write_custom_csv(name):
filtered = df[df['name'] == name]
filtered.to_csv("Desktop\Report" + name + '.csv')
write_custom_csv(df)
我还尝试定义outpath:
outpath = "Desktop/Report"
def write_custom_csv(name):
filtered = df[df['name'] == name]
filtered.to_csv(outpath + name + '.csv')
write_custom_csv(df)
预期输出将是Ben、Steve和Mary各自的单独csv文件。本将在文件中包含1和4,史蒂夫2和5,玛丽3和6。文件名中会有它们的名称,如BenReport.csv
输出没有excel文件,并且显示此错误消息
TypeError:无法将['Desktop/Report']与块值进行比较
你尝试的第一种方法应该有效。你犯了什么错误
第二种方法很接近,但是当您尝试只传递名称时,您正在传递整个数据帧。请尝试:
相关问题 更多 >
编程相关推荐