我有这样的df:
Allotment Year NDVI A_Annex Bachelor
A_Annex 1984 1.0 0.40 0.60
A_Annex 1984 1.5 0.56 0.89
A_Annex 1984 2.0 0.78 0.76
A_Annex 1985 3.4 0.89 0.54
A_Annex 1985 1.6 0.98 0.66
A_Annex 1986 2.5 1.10 0.44
A_Annex 1986 1.7 0.87 0.65
我希望将每列写入新数据帧,并根据列名称编写后续csv。所以我想为每列的内容提供一个新的csv。
到目前为止,我已经这样做了:
outpath='C:\'
for column in df:
x=pd.DataFrame(df[column])
outpath=outpath + column + '.csv'
x.to_csv(outpath)
但column
包含每个列名,当我只想写入单独的列名时。我想要的文件名就像Allotment.csv
,Year.csv
,NDVI.csv
,A_Annex.csv
,Bachelor.csv
答案 0 :(得分:1)
这一行收集了所有列名:
outpath = outpath + column + '.csv'
因为它在for循环的每个循环上运行
这有效:
outpath='C:\'
for column in df:
x=pd.DataFrame(df[column])
outfile=outpath + column + '.csv'
x.to_csv(outfile)
请注意,循环变量名称已从outpath
更改为新的var outfile
,这将阻止文件名被聚合和损坏。
我注意到.csv
个文件有两列,即行号和值。
如果您不想使用行号,请使用x.to_csv(outfile, index=False)