使用Python和Pandas合并多个CSV文件

时间:2018-06-27 13:35:56

标签: python pandas

我有以下代码:

import glob
import pandas as pd
allFiles = glob.glob("C:\*.csv")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
    print file_
    df = pd.read_csv(file_,index_col=None, header=0)
    list_.append(df)
    frame = pd.concat(list_, sort=False)
print list_
frame.to_csv("C:\f.csv")

这会将多个CSV合并为一个CSV。

但是它还会添加一个行号列。

输入:

a.csv

a   b   c   d
1   2   3   4

b.csv

a   b   c   d
551 55  55  55
551 55  55  55

结果: f.csv

    a   b   c   d
0   1   2   3   4
0   551 55  55  55
1   551 55  55  55

如何修改代码以不在输出文件中显示行号?

2 个答案:

答案 0 :(得分:2)

frame.to_csv("C:\f.csv")更改为frame.to_csv("C:\f.csv", index=False)

请参阅:pandas.DataFrame.to_csv

答案 1 :(得分:1)

完成此简单任务无需使用熊猫。 pandas正在解析文件并将数据转换为numpy构造,您不需要...实际上,您可以通过普通的文本文件操作来做到这一点:

import glob
allFiles = glob.glob("C:\*.csv")
first = True
with open('C:\f.csv', 'w') as fw:
    for filename in allFiles:
        print filename
        with open(filename, 'r') as f:
            if not first:
                f.readline() # skip header
            first = False
            fw.writelines(f)