我有一个数据框和字典,如下所示:
df =
name characteristic value
bob job doctor
bob age 25
jim job doctor
jim age 25
jim height 6'
mydict = { 'bob': 10, 'jim': 4 }
字典描述了具有特定名称的所有行的乘数值。
我想计算此数据框中重复特征和值对的数量,然后为该计数提供一个乘数值,其中乘数值是我字典中的值。
我试图获取的数据框看起来像这样:
df =
name characteristic value count multiplier total
bob job doctor 2 10 20
bob age 25 2 10 20
jim job doctor 2 4 8
jim age 25 2 4 8
jim height 6' 1 4 4
我能够生成计数列,但完全无法将字典附加到数据框中。如何使用原始 df 和字典在上面显示的最终数据框中创建乘数列?
最佳答案
我已经为您分解了步骤:
使用
groupby
+transform
获取值的计数 -df['count'] = df.groupby('value').value.transform('count')
使用
pd.Series.map
将名称映射到乘数 -df['multiplier'] = df['name'].map(mydict)
在旧版本上,您可以考虑使用
df['multiplier'] = df['name'].replace(mydict)
。最后,计算总数,这很简单。
df['total'] = df['count'] * df['multiplier']
df
name characteristic value count multiplier total
0 bob job doctor 2 10 20
1 bob age 25 2 10 20
2 jim job doctor 2 4 8
3 jim age 25 2 4 8
4 jim height 6' 1 4 4
关于python - 将字典附加到数据框中,其中字典键与某些 df 行值匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49201301/