我有一个 CSV (file1.csv),其中包含奇怪的数据和分隔符,如下所示:
[Header]
Info1,Info2
Foo1,Foo2
Bar1,Bar2
[Data]
Info3,Info4
Foo3,Foo4
我还可以将其转换为 Pandas DF。
我有第二个文件 (file2.csv),它看起来像传统的 CSV:
Sample,ID,Project_Name,Description
Sample1,Example_ID_1,ProjectFoo,N/A
Sample2,Example_ID_2,ProjectFoo,N/A
我想将这些 CSV(或 Pandas DF 然后合并为 CSV)水平合并到一个输出 CSV 中,如下所示:
[Header]
Info1,Info2
Foo1,Foo2
Bar1,Bar2
[Data]
Info3,Info4
Foo3,Foo4
Sample,ID,Project_Name,Description
Sample1,Example_ID_1,ProjectFoo,N/A
Sample2,Example_ID_2,ProjectFoo,N/A
由于列和分隔符不同,我无法使用 pd.concat
或 pd.merge
合并这两个,并且无法保留我想要的输出 CSV 结构。
我知道在 bash 中我可能可以cat
这两个文件,但是在 Python 中有没有有效的方法来做到这一点?目前,我在 shell 中进行子进程调用,以 cat
我的 Python 脚本中的两个文件,但我不喜欢这两个文件。
有什么想法吗?
最佳答案
由于您没有对数据进行任何处理,只是进行简单的连接,因此您可以读取每个文件并将其写入单个输出文件:
with open('output.csv', 'w') as f_output:
for fn in ['file1.csv', 'file2.csv']:
with open(fn) as f_input:
f_output.write(f_input.read() + '\n')
关于python - 在Python中水平合并具有不同分隔符和列的CSV的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71918019/