bab*_*abz 3 python numpy pandas pandas-groupby
数据每个ID多行
ID Value1 Value2
1 1 0
1 0 1
1 3 1
Run Code Online (Sandbox Code Playgroud)
期望的输出
对于每个ID,(SUM(Value1))*(Value2).
在这种情况下,对于ID1,它将是4*0 = 0.
我希望将结果放回原始表中,如下所示
ID Value1 Value2 Calculated_Value
1 1 0 0
1 0 1 4
1 3 1 4
Run Code Online (Sandbox Code Playgroud)
我试过这个..但是我在输出表中得到了NaN ..
df['Calculated_Value'] = df['ID'].map(df.groupby('ID')['Value1'].sum()*['Value2'])
Run Code Online (Sandbox Code Playgroud)
你可以这样做.transform:
df['Calculated_Value'] = df.groupby('ID').Value2. \
transform(lambda x: x * df['Value1'].sum())
print df
# ID Value1 Value2 Calculated_Value
# 0 1 1 0 0
# 1 1 0 1 4
# 2 1 3 1 4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
245 次 |
| 最近记录: |