当前位置:  开发笔记 > 编程语言 > 正文

如何在Python中合并200个csv文件

如何解决《如何在Python中合并200个csv文件》经验,为你挑选了6个好方法。

伙计们,我这里有200个单独的csv文件,从SH(1)到SH(200)命名.我想将它们合并到一个csv文件中.我该怎么做?



1> wisty..:

正如ghostdog74所说,但这次有标题:

fout=open("out.csv","a")
# first file:
for line in open("sh1.csv"):
    fout.write(line)
# now the rest:    
for num in range(2,201):
    f = open("sh"+str(num)+".csv")
    f.next() # skip the header
    for line in f:
         fout.write(line)
    f.close() # not really needed
fout.close()


你可以使用`f .__ next __()`而不是python3.x中的`f.next()`.
只需注意:可以使用`with open`语法并避免手动`.close()`文件.
f.next()和f .__ next __()有什么区别?当我使用前者时,我得到了'_io.TextIOWrapper'对象没有属性'next'

2> blinsay..:

你为什么不能这么做sed 1d sh*.csv > merged.csv

有时你甚至不必使用python!


在Windows上,C:\> copy*.csv merged.csv
如何在不复制第一个后续文件的头文件信息的情况下使用此命令?我似乎反复弹出标题信息.
从一个文件复制头信息:sed -n 1p some_file.csv> merged_file.csv从所有其他文件中复制除最后一行之外的所有文件:sed 1d*.csv >> merged_file.csv
@blinsay它将每个CSV文件中的标头也添加到合并的文件中。
如果您不需要删除标题,这很棒!

3> scottlittle..:

使用接受的StackOverflow答案创建要附加的csv文件列表,然后运行此代码:

import pandas as pd
combined_csv = pd.concat( [ pd.read_csv(f) for f in filenames ] )

如果要将其导出到单个csv文件,请使用:

combined_csv.to_csv( "combined_csv.csv", index=False )



4> ghostdog74..:
fout=open("out.csv","a")
for num in range(1,201):
    for line in open("sh"+str(num)+".csv"):
         fout.write(line)    
fout.close()



5> Norfeldt..:

我将通过篮子中的另一个代码示例

from glob import glob

with open('singleDataFile.csv', 'a') as singleFile:
    for csvFile in glob('*.csv'):
        for line in open(csvFile, 'r'):
            singleFile.write(line)


@Andy我没有看到stackoverflow之间的区别提醒我投票给答案我提醒人们分享他们的赞赏(通过投票),如果他们发现我的答案有用.我知道这不是Facebook,我不是一个喜欢猎人的人.

6> Alex Martell..:

这取决于你所说的"合并" - 他们有相同的列吗?他们有标题吗?例如,如果它们都具有相同的列,并且没有标题,则简单的连接就足够了(打开目标文件进行写入,遍历每个用于读取的源,使用shutil.copyfileobj从open-for-reading源到open-for-writing目的地,关闭源代码,保持循环 - 使用该with语句代表您完成结束.如果它们具有相同的列,但也有标题,则在将readline每个源文件复制到目标之前打开它以进行读取之后,除了第一个文件之外,您将需要一个,以跳过标题行.

如果CSV文件并非都具有相同的列,那么您需要定义在哪种意义上"合并"它们(如SQL JOIN?或"水平",如果它们都具有相同数量的行?等等) ) - 在这种情况下,我们很难猜出你的意思.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有