【问题标题】:How to merge two dataframes with pandas Python如何使用 pandas Python 合并两个数据框
【发布时间】:2021-09-10 22:46:52
【问题描述】:

这里有 2 个数据框:

d1 = pd.DataFrame({'a': [19, 65, 7, 49, 66, 89, 545],
                  'b': [4, 6, 6, 90, 5, 77, 767],
                  'c': [34, 78, 65, 666, '', '', '']})

d2 = pd.DataFrame({'c': [34, 78, 65, '', ''],
                  'd': [4, 6, 6, 90, 767]})

我想用“c”列作为接缝在它们之间进行合并。

就我而言,我使用这个:

df = pd.merge(d1, d2, how='left')

但结果并不好。其实我有一些doublons,再加上最终的结果应该是一个d1长度相同的dataframe。就我而言,这不是真的。

这是我想要的结果:

df = pd.DataFrame({'a': [19, 65, 7, 49, 66, 89, 545],
                  'b': [4, 6, 6, 90, 5, 77, 767],
                  'c': [34, 78, 65, 666, '', '', ''],
                  'd': [4, 6, 6, 90, 767, '', '']})

【问题讨论】:

标签: python-3.x pandas dataframe merge


【解决方案1】:

IIUC:

使用concat()fillna()

df=pd.concat([d1,d2.pop('d')],axis=1).fillna('')
#OR
df=pd.concat([d1,d2['d']],axis=1).fillna('')

现在,如果您打印 df,您将获得预期的输出

【讨论】:

  • 这不是我想要的结果。你可以在描述中看到它
  • @ahmedaao 为什么在预期输出中的索引4 处得到867
  • 对不起。错误是767
  • @ahmedaao 更新答案.....请看一下:)
猜你喜欢
  • 2020-02-19
  • 1970-01-01
  • 2015-10-17
  • 2018-03-14
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 2015-04-17
  • 2017-12-16
相关资源
最近更新 更多