【发布时间】:2017-08-05 13:05:08
【问题描述】:
我需要将文件夹中的多个 CSV 文件合并为一个。
我原来的数据是这样的
y_1980.csv:
country y_1980
0 afg 196
1 ago 125
2 alb 23
3 . .
. . .
y_1981.csv:
country y_1981
0 afg 192
1 ago 120
2 alb 0
3 . .
. . .
y_20xx.csv:
country y_20xx
0 afg 176
1 ago 170
2 alb 76
3 . .
. . .
我期望得到的是类似这样的东西:
country y_1980 y_1981 ... y_20xx
0 afg 196 192 ... 176
1 ago 125 120 ... 170
2 alb 23 0 ... 76
3 . . . ... .
. . . . ... .
到目前为止,我当前的代码如下,但我得到的结果是数据框在前一个之后合并:
interesting_files = glob.glob("/Users/Desktop/Data/*.csv")
header_saved = True
with open('/Users/Desktop/Data/table.csv','wb') as fout:
for filename in interesting_files:
with open(filename) as fin:
header = next(fin)
if not header_saved:
fout.write(header)
header_saved = True
for line in fin:
fout.write(line)
【问题讨论】:
-
如果您使用
pandas,它会容易得多。因为它摆脱了for-loop并保持低内存占用。此外,它更全面。如果您需要 pandas 解决方案,请告诉我。 -
是的,我想要一个熊猫解决方案
-
检查答案。它将优雅地工作并且更全面。让我知道它是否有效。
-
如果有帮助,请接受并支持答案。谢谢。