【问题标题】:concat two df by two equal columns pandas python [duplicate]用两个相等的列连接两个df pandas python [重复]
【发布时间】:2020-08-09 12:51:18
【问题描述】:

我有两个 df 有两个相似的列但名称不同,我想通过相似的列连接它们

那是我的 df

data={"col1":["A","B","D","f"],
"col2":[4,2,4,6],
"col3":[7,6,9,11],
"col4":[14,11,22,8],
"multi":[1.4,2.5,1.6,2.2]}
df1=pd.DataFrame.from_dict(data)

data2={"col5":["A","B","D","f"],
"col6":[345,55,44,16],
"col7":[4,7,4,6],
"col8":[1,5,3,9],
"multi_2":[2,2,4,9]}
df2=pd.DataFrame.from_dict(data2)

我想按列连接它们 ["col1","col5"]

它需要看起来像这样,但它也可以与“col5”一起使用

data3={"col1":["A","B","D","f"],
"col2":[4,2,4,6],
"col3":[7,6,9,11],
"col4":[14,11,22,8],
"multi":[1.4,2.5,1.6,2.2],
"col6":[345,55,44,16],
"col7":[4,7,4,6],
"col8":[1,5,3,9],
"multi_2":[2,2,4,9]}
df3=pd.DataFrame.from_dict(data3)
df3

【问题讨论】:

  • df1.merge(df2, left_on=['col1'], right_on=['col5'])
  • 谢谢我试试这个,但我写的是 left_on='col1' 而不是 left_on=['col1'] 谢谢 :)
  • 是的..它可以是标签或列表,或类数组
  • @matan 当你作为字符串给出时应该仍然有效。
  • 如果 df1 还有一行,我如何合并它们而不丢失不在 df2 中的行?

标签: python pandas dataframe merge concat


【解决方案1】:
df1.merge(df2, left_on='col1', right_on='col5').drop('col5', axis=1)

【讨论】:

  • 如果 df1 还有一行,我如何合并它们而不丢失不在 df2 中的行?
  • @matan 添加how='left'how='outer'
猜你喜欢
  • 2019-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
相关资源
最近更新 更多