python - 使用python合并csv文件而不重复标题

标签 python csv split

我正在尝试这样做,

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/

相关文章:

python - 在 python 中通过公共(public)列连接两个 csv 文件

python - 如何输出 groupby 对象的 csv?

linux - 从文本文件中分割记录 block

mysql - SQL - 选择一个字符串的元素与另一个字符串的元素匹配的位置

xcode4 - 如何关闭拆分窗口/相邻编辑器 - Xcode 4

r - 使用两列数据拆分数据框并对结果数据框列表应用通用转换

Python循环遍历CSS文件中的所有url并替换

python - 需要编写python脚本在cygwin中执行linux命令

python - 将星号作为命令行参数中字符串的一部分传递到 python 程序中?

Python Pandas groupby 函数,具有每月、每小时的动态参数