【问题标题】:Merging data in two different DF based on a column value in both DF's [duplicate]基于两个DF中的列值合并两个不同DF中的数据[重复]
【发布时间】:2022-02-22 02:02:21
【问题描述】:

我有 2 个 df,如下所示

df1

df2

我想合并两个 DF 以获得以下值,

这可能吗?

【问题讨论】:

  • 是的,这就是 pandas joinmerge 函数的用途
  • df1.merge(df2, on='Date', how='left').fillna({'CNT': '-'})
  • 我重新打开了这个问题,但您的示例对我有用。我不知道你为什么在 CNT 列中有 NaN

标签: python pandas dataframe numpy datetime


【解决方案1】:

它为所有 CNT 值提供 NaN

我在评论中使用了上面发布的解决方案

data1 = {'Date': ['2017-01-01', '2017-02-01', '2017-03-01', 
                  '2017-04-01', '2017-05-01'],
         'value': [1000, 2000, 3000, 4000, 5000]}
df1 = pd.DataFrame(data1)

data2 = {'Date': ['2017-02-01', '2017-03-01', '2017-04-01'],
         'CNT': [132, 234, 356]}
df2 = pd.DataFrame(data2)

df3 = df1.merge(df2, on='Date', how='left').fillna({'CNT': '-'})

输出:

>>> df3
         Date  value    CNT
0  2017-01-01   1000      -
1  2017-02-01   2000  132.0
2  2017-03-01   3000  234.0
3  2017-04-01   4000  356.0
4  2017-05-01   5000      -

阅读更多Pandas Merging 101

【讨论】:

    猜你喜欢
    • 2019-09-13
    • 2022-01-05
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多