【发布时间】:2020-06-16 11:08:22
【问题描述】:
我有 3 个没有标题的 CSV 文件(用“,”分隔),需要将它们合并到一个文件中:
file1.csv
United Kingdom John
file2.csv
France Pierre
file3.csv
Italy Marco
预期结果:
United Kingdom John
France Pierre
Italy Marco
我的代码:
import pandas as pd
df = pd.read_csv('path/to/file1.csv', sep=',')
df1 = pd.read_csv('path/to/file2.csv', sep=',')
df2 = pd.read_csv('path/to/file3.csv', sep=',')
df_combined = pd.concat([df,df1,df2])
df_combined.to_csv('path/to/output.csv')
上面给了我合并的数据,但它从我的 CSV 文件中添加了行作为新的列和行,而不是只向现有的两列添加新行:
United Kingdom John
France Pierre
Italy Marco
有人可以帮忙吗?提前谢谢!
【问题讨论】:
-
您确定 csv 文件中的字段分隔符是逗号并且您的读取正确吗?你的 df, df1 和 df2 在 concat 之前的形状是什么?在我看来,您正在读取 csv 内容作为列名而不是数据本身(如果没有列标题,请使用 header = None)
-
嗨 predmod,当我在 python 中打印每个 df 时,它显示相同的列数并检查行是否被逗号分隔。除了 pandas 之外,是否还有其他方式来合并/连接行?
-
concat 方法应该可以正常工作并且是正确的方法(您也可以使用框架的附加),但是在您的情况下某些内容没有正确绑定(索引已关闭?) - 的列名是什么df, df1, df2 ?
print(df.columns)...您还可以打印 df.shape 元组。我怀疑您将第一行作为列名导入(您需要在 read_csv 中使用header=None参数)