我正在使用 Pandas ,但我对它很新,我想知道如何拆分.csv
文件看起来像这样:
Code DateTime Value
A1 1/1/15 5:45 150
A2 1/1/15 5:45 100
A3 1/1/15 5:45 200
A1 1/1/15 6:00 200
A2 1/1/15 6:00 219
A3 1/1/15 6:00 150
A1 1/1/15 6:15 200
...
进入单独的.csv
文件,以便每个文件只有一个鳕鱼的值,这样做我的输出就是多个csv文件,A1.csv
,A2.csv
等等。我打开文件A1.csv
我看到了:
Code DateTime Value
A1 1/1/15 5:45 150
A1 1/1/15 6:00 200
A1 1/1/15 6:15 200
...
依此类推所有文件。
答案 0 :(得分:2)
这是另一种选择:
for c in df.Code.unique():
(df[df.Code == c]).to_csv(c + '.csv', index=False)
Writes these files:
Code, DateTime, Value
A1, 1/1/15 5:45,150
A1, 1/1/15 6:00,200
A1, 1/1/15 6:15,200
Etc...
如果你有一个庞大的数据集,使用@EdChum提出的groupby可能会更快,但我发布这个替代方案只是为了表明在pandas中有很多方法可以做。
答案 1 :(得分:1)
我认为以下内容应该可以正常工作,基本上groupby
在'代码'上然后迭代这些组并生成文件名并将其写出来:
In [9]:
g=df.groupby('Code')
for gp in g:
filename = gp[0] + '.csv'
print(filename)
gp[1].to_csv(filename)
A1.csv
A2.csv
A3.csv
每组的内容:
In [11]:
for gp in g:
print(gp[1])
Code DateTime Value
0 A1 2015-01-01 05:45:00 150
3 A1 2015-01-01 06:00:00 200
6 A1 2015-01-01 06:15:00 200
Code DateTime Value
1 A2 2015-01-01 05:45:00 100
4 A2 2015-01-01 06:00:00 219
Code DateTime Value
2 A3 2015-01-01 05:45:00 200
5 A3 2015-01-01 06:00:00 150