【问题标题】:Fill 0s with Column Value based on Group (Another Column Value) [duplicate]用基于组的列值填充 0(另一个列值)[重复]
【发布时间】:2022-01-05 15:18:24
【问题描述】:

我有一个 DF,示例如下:

Group       $        Type    
1           50       A
1           0        B
1           0        C
2           150      A
2           0        B
2           0        C

我想要做的是用每个组与列A 关联的值填充$ 列。

生成的 DF 将如下所示:

Group       $        Type    
1           50       A
1           50       B
1           50       C
2           150      A
2           150      B
2           150      C

我尝试了各种 np.where 函数,但似乎无法获得所需的输出。

提前致谢!

【问题讨论】:

  • 如果 A 类型是每个组的 $ 列中存在的唯一值,则只需 df['$'].replace(0, np.nan).ffill()

标签: python pandas numpy group-by


【解决方案1】:

试试groupbytransform max

df['new$'] = df.groupby('Group')['$'].transform('max')
df
Out[371]: 
   Group    $ Type  new$
0      1   50    A    50
1      1    0    B    50
2      1    0    C    50
3      2  150    A   150
4      2    0    B   150
5      2    0    C   150

【讨论】:

    猜你喜欢
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 2022-11-24
    相关资源
    最近更新 更多