【问题标题】:how to concat 2 dataframes, keeping rows with same index如何连接 2 个数据帧,保持具有相同索引的行
【发布时间】:2020-01-06 03:56:12
【问题描述】:

我有 2 个数据帧,我想在保持 df1 列的顺序的情况下连接它们:

df1:
index   unnamed:0   unnamed:1      unnamed:393    unnamed:395
 0       nan           1       ...     394           396 
 1       0            BB               CC            DD


df2:

    index     Service
     220      ABC
     222      ABB
     394      CC
     396      DD
     ....

the output should be like:
df3:

     index 
       0      394    396  
       1      394    396
       2      CC     DD
       3      CC     DD

如果我只是简单地制作df3=pd.concat([df1,df2]),它只会在整个 df 1 列表的末尾添加 df2 使用df3=pd.concat([df1,df2], axis=1, ignore_index=True) 时几乎相同 我认为多索引存在一些问题,但不知道该输入什么。 谢谢

【问题讨论】:

  • 这两个数据帧完全不同。 concat 是一种旨在添加相似/相同格式数据帧的操作。你到底想达到什么目的?您想要哪些列,两个数据框之间的联系是什么?
  • @Aryerez 想要将所有匹配项分别添加到一列中

标签: python pandas dataframe merge concatenation


【解决方案1】:

您可以使用df1.join(df2)
这会产生如下结果:

文档是here
更多关于pandas中各种合并操作的信息,也可以查看this

【讨论】:

  • 谢谢,但应该找到每一行的匹配项并在一列中连接在一起(所有匹配项)。不相邻
  • 您的问题我并不完全清楚,抱歉。您能以我在图片中提供的数据框为例进行解释吗?
  • 我在上面贴了一张图片。也许有帮助
  • 我不确定您是否可以使用 pandas 的函数来执行此操作,但您可以尝试使用提供的不同参数。
  • 也许有类似 lambda 或 stack 之类的函数,将 2 列合为一列然后连接?
猜你喜欢
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-24
相关资源
最近更新 更多