【问题标题】:Pandas: Conditional joining of column from same dataframe熊猫:来自同一数据框的列的条件连接
【发布时间】:2021-01-04 15:21:44
【问题描述】:

我的目标是在 python 中创建一个 excel-vlookup 等效项,它获取过去一个月的值并将其放置到当前月份旁边的新列 ['new'] 中。

鉴于 ['id'] 作为键列,我如何才能将这两对相互匹配?在我看来,它好像是一个带有条件的合并(左连接)。

从这里:

id       month  value
01     current    123
02     current    234
03     current    345
01     prev1      543
02     prev1      432
03     prev1      321
01     prev2      678
02     prev2      789
03     prev2      890

到这里:

id       month  value  new
01     current    123  543
02     current    234  432
03     current    345  321
01     prev1      543  678
02     prev1      432  789
03     prev1      321  890
01     prev2      678  NaN
02     prev2      789  NaN
03     prev2      890  NaN

月:仅存在 current、prev1 和 prev2

id:存在数百个 id

我想避免使用任何月份数字,而是坚持使用当前、prev1、prev2

【问题讨论】:

    标签: python python-3.x pandas dataframe numpy


    【解决方案1】:

    让我们试试

    df['new'] = df.groupby('id').value.shift(-1)
    df
    Out[410]: 
       id    month  value    new
    0   1  current    123  543.0
    1   2  current    234  432.0
    2   3  current    345  321.0
    3   1    prev1    543  678.0
    4   2    prev1    432  789.0
    5   3    prev1    321  890.0
    6   1    prev2    678    NaN
    7   2    prev2    789    NaN
    8   3    prev2    890    NaN
    

    【讨论】:

      猜你喜欢
      • 2021-08-22
      • 2019-02-15
      • 2020-10-13
      • 1970-01-01
      • 2021-02-15
      • 2019-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多