【问题标题】:Merge two csv files that have a similar row structure but no common index between them合并两个具有相似行结构但它们之间没有公共索引的 csv 文件
【发布时间】:2019-03-27 18:57:29
【问题描述】:

我有两个要合并的 csv 文件,方法是将列信息从一个 csv 添加到另一个。但是它们之间没有共同的索引,但它们确实具有相同数量的行(它们是按顺序排列的)。我已经看到很多基于索引和相同数字加入 csv 文件的示例,但是我的 csv 文件没有类似的索引,但它们是有序的。我尝试了几个不同的例子,但都没有运气。

mycsvfile1

"a","1","mike"
"b","2","sally"
"c","3","derek"

mycsvfile2

"boy","63","retired"
"girl","55","employed"
"boy","22","student"

outcsvfile3 的期望结果

"a","1","mike","boy","63","retired"
"b","2","sally","girl","55","employed"
"c","3","derek","boy","22","student"

代码:

import csv
import panada 

df2 = pd.read_csv("mycsvfile1.csv",header=None)
df1 = pd.read_csv("mycsvfile2.csv", header=None)
df3 = pd.merge(df1,df2)

使用

df3 = pd.merge([df1,df2])

将数据添加到对我没有帮助的新行中。非常感谢任何帮助。

【问题讨论】:

    标签: pandas csv merge


    【解决方案1】:

    除了 index 之外,df1df2 之间没有任何共同的 columns 。所以我们可以使用concat

    pd.concat([df1,df2],axis=1)
    

    【讨论】:

      【解决方案2】:

      如果两个数据帧都有编号的索引(即从 0 开始并以 1 递增 - 这是pd.read_csv 的默认行为),并假设两个数据帧都已按正确顺序排序以使行匹配,那么应该这样做:

      df3 = pd.merge(df1,df2, left_index=True, right_index=True)
      

      【讨论】:

        猜你喜欢
        • 2016-06-29
        • 2022-11-22
        • 1970-01-01
        • 2021-09-24
        • 2020-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多