我有一个数据:
print(dataset)
variable groups value
Both I 3099060
Both U 175820
C_only I 5207055
C_only U 225992
P_only I 4063438
P_only U 175593
None I 9413116
None U 292982
dataset.value.dtype
dtype('int64')
type(dataset)
pandas.core.frame.DataFrame
我正在尝试创建一个名为value2
的新变量,它的计算方法是值除以每个组下的值的总和。
我想要的:
variable groups value value2
Both I 3099060 0.14227
Both U 175820 0.20200
C_only I 5207055 0.23905
C_only U 225992 0.25965
P_only I 4063438 0.18654
P_only U 175593 0.20174
None I 9413116 0.43214
None U 292982 0.33661
我使用groupby
来计算,但得到了NaN
:
dataset['value2'] = dataset.groupby(['groups']).value / dataset.groupby(['groups']).value.sum()
有什么建议吗?
发布于 2019-06-04 03:02:40
通过lambda函数使用groupby和transform。
dataset['value2']=dataset.groupby('groups')['value'].transform(lambda x: x/x.sum())
https://stackoverflow.com/questions/56433134
复制相似问题