在隔行中合并两个csv文件的内容

zzlelutf  于 2022-12-06  发布在  其他
关注(0)|答案(3)|浏览(111)

我有两个CSV文件
CSV文件1:

header
a
b
c

csv2命令:\

header
e
f
g

我想将这两个文件合并到另一个CSV文件中,并将其放在如下所示的交替行中
output.csv:

header
a
e
b
f
c
g

可以吗?先谢谢

2g32fytz

2g32fytz1#

假设csv 1读入df1
假设将csv 2读入df2

df1 = pd.DataFrame({'header': ['a', 'b', 'c']})
df2 = pd.DataFrame({'header': ['d', 'e', 'f']})

print(pd.concat(
    [df1, df2], axis=1
).stack().reset_index(1, drop=True))

输出编号

0    a
0    d
1    b
1    e
2    c
2    f
iaqfqrcu

iaqfqrcu2#

肯定不是最快的方法,但它很有效

import pandas as pd
from itertools import chain, zip_longest

x = pd.DataFrame()
x["header"] = [1, 3, 5, 7]

y = pd.DataFrame()
y["header"] = [2, 4, 6, 8, 10, 21]

chained = list(chain.from_iterable(zip_longest(x["header"].to_list(), y["header"].to_list())))
df = pd.DataFrame()
df["header"] = chained
df = df.dropna()
zqry0prt

zqry0prt3#

更“传统”的Python方法,不需要任何外部依赖。

with open("csv1.txt") as f1, open("csv2.txt") as f2, open("output.txt", "w") as fo:
    csv1, csv2 = f1.readlines(), f2.readlines()
    header, _ = csv1.pop(0), csv2.pop(0)
    output = [header]
    for i in range(min(len(csv1),len(csv2))):
        output.extend([csv1[i], csv2[i]])
    fo.writelines(output)

相关问题