我有以下代码:
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
如何修改代码以不在输出文件中显示行号?
答案 0 :(得分:2)
将frame.to_csv("C:\f.csv")
更改为frame.to_csv("C:\f.csv", index=False)
答案 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)