我的 df 看起來像這樣:
value type
12 x
34 z
54 x
14 y
我想創建一個新列df.sum,我想在其中對值 col 求和,但僅在type == x. 其余行應為空。例如,輸出應該是這樣的:
value type sum
12 x 86
34 z
54 x 86
14 y
uj5u.com熱心網友回復:
如果要處理單一型別(僅x):
mask = df['type'].eq('x')
df.loc[mask, 'sum'] = df.loc[mask, 'value'].sum()
如果您可能需要處理幾個:
types = ['x'] # add others, e.g.: types = ['x', 'y']
df.loc[df['type'].isin(types), 'sum'] = (df.groupby('type')['value']
.transform('sum')
)
輸出:
value type sum
0 12 x 66.0
1 34 z NaN
2 54 x 66.0
3 14 y NaN
uj5u.com熱心網友回復:
我們可以使用布爾索引loc:
m = df['type'].eq('x')
df.loc[m, 'sum'] = df.loc[m, 'value'].sum()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/481082.html
標籤:Python python-3.x 熊猫 数据框 麻木的
