我正在尝试这样做,
import glob
interesting_files = glob.glob("/home/tcs/PYTHONMAP/test1/*.csv")
header_saved = False
with open('/home/tcs/PYTHONMAP/output.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)
并得到
File "/home/tcs/.config/spyder-py3/temp.py", line 11, in <module>
fout.write(header)
TypeError: a bytes-like object is required, not 'str'
我对python不太了解,请帮忙
我也想知道如何将 1 个大 csv 拆分为多个具有相同标题的 csv。
最佳答案
使用 Pandas :
import pandas as pd
interesting_files = glob.glob("/home/tcs/PYTHONMAP/test1/*.csv")
df = pd.concat((pd.read_csv(f, header = 0) for f in interesting_files))
df.to_csv("output.csv")
删除重复的行:
import pandas as pd
interesting_files = glob.glob("/home/tcs/PYTHONMAP/test1/*.csv")
df = pd.concat((pd.read_csv(f, header = 0) for f in interesting_files))
df_deduplicated = df.drop_duplicates()
df_deduplicated.to_csv("output.csv")
这不会在创建数据帧时消除重复项,但在此之后。因此,通过连接所有文件来创建数据帧。然后进行重复数据删除。然后可以将最终数据帧保存到 csv。
关于python - 使用python合并csv文件而不重复标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45212537/