【问题标题】:Join two panda dataframe with duplicate value [duplicate]加入两个具有重复值的熊猫数据框[重复]
【发布时间】:2021-12-18 19:20:16
【问题描述】:

我有两张桌子

大师:

BLOCKID PLANTINGDATE  PLANTED_HA
   A001    01-JAN-08       13.86
   A002    01-JAN-08       13.24
   A002    31-MAR-18        1.99
   A003    01-JAN-08       14.76
   A003    31-MAR-18        2.48

pest_perperiod:(注意除了A002还有FIELDCODE)

FIELDCODE      PERIOD
     A002  2019-01-01
     A002  2019-02-01
     A002  2019-03-01
     A002  2019-04-01
     A002  2019-05-01

我想加入两个数据框,以便为每个 PLANTINGDATE 中的数据pes_perperiod 将有一个或多个相应的 PLANTINGDATE(如 SQL 中的交叉连接),因此我可以计算每个 BLOCKID 和 PLANTINGDATE 自活动月份以来的保留率

我尝试使用:(反之亦然)

pest_perperiod.join(masterblok.set_index('BLOCKID'), on='FIELDCODE')

由于重复值仍然存在,返回错误,怎么办?

【问题讨论】:

  • 试试past_period.merge

标签: python pandas dataframe join duplicates


【解决方案1】:

我想你只是想要merge

pest_perperiod.merge(masterblock, left_on='BLOCKID', right_on='FIELDCODE')

输出:

  BLOCKID PLANTINGDATE  PLANTED_HA FIELDCODE      PERIOD
0    A002    01-JAN-08       13.24      A002  2019-01-01
1    A002    01-JAN-08       13.24      A002  2019-02-01
2    A002    01-JAN-08       13.24      A002  2019-03-01
3    A002    01-JAN-08       13.24      A002  2019-04-01
4    A002    01-JAN-08       13.24      A002  2019-05-01
5    A002    31-MAR-18        1.99      A002  2019-01-01
6    A002    31-MAR-18        1.99      A002  2019-02-01
7    A002    31-MAR-18        1.99      A002  2019-03-01
8    A002    31-MAR-18        1.99      A002  2019-04-01
9    A002    31-MAR-18        1.99      A002  2019-05-01

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多