组合多个csv fi

2024-03-28 23:03:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3个csv文件,我想把这3个文件写入一个csv文件如何可能。 例如

文件1.csv

a b c d
1 2 3 4 
5 6 7 8

文件2.csv

^{pr2}$

文件3.csv

i j k l 
9 10 11 12 
21 22 23 24

所需输出如下

  a b c d e   f g  h  i j  k  l
  1 2 3 4 13 14 15 16 9 10 11 12
  5 6 7 8 17 18 19 20 21 22 23 24

Tags: 文件csvpr2
3条回答

Python熊猫道。

(对上面发布的代码稍作改进)

import pandas as pd

files = ['file1.csv', 'file2.csv', 'file3.csv']

df_combined = pd.concat(map(pd.read_csv, files))
df_combined.to_csv('output.csv', index=None)

然后得到组合的csv文件output.csv

Unix命令行方式。

^{pr2}$

如果您使用的是UNIX类型的操作系统,请检查您是否只关心合并文件how to merge two files consistently line by line

祝你好运。在

您可以使用pandas,一个数据操作工具。在

import pandas as pd

df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
df3 = pd.read_csv('file3.csv')

df_combined = pd.concat([df1, df2, df3],axis=1)
df_combined.to_csv('output.csv', index=None)

然后得到组合的csv文件output.csv

伙计们是对的,你不应该要求密码。然而,我发现这项任务很有说服力,我花了三分钟来解决这个问题:

import csv

allColumns = []
for dataFileName in [ 'a.csv', 'b.csv', 'c.csv' ]:
  with open(dataFileName) as dataFile:
    fileColumns = zip(*list(csv.reader(dataFile, delimiter=' ')))
    allColumns += fileColumns

allRows = zip(*allColumns)

with open('combined.csv', 'w') as resultFile:
  writer = csv.writer(resultFile, delimiter=' ')
  for row in allRows:
    writer.writerow(row)

请注意,对于大输入,此解决方案可能无法正常工作。它还假设所有文件的行(行)数量相等,如果不是这样,可能会中断。在

相关问题 更多 >