Python 将字典追加到dict键与某个df行值匹配的数据帧中
我有一个数据框架和字典,如下所示:Python 将字典追加到dict键与某个df行值匹配的数据帧中,python,pandas,Python,Pandas,我有一个数据框架和字典,如下所示: df = name characteristic value bob job doctor bob age 25 jim job doctor jim age 25 jim height 6' mydict = { 'bob': 10, 'jim
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
我能够生成count列,但完全无法将字典附加到数据帧中。如何使用原始df和字典在上面显示的最终数据帧中创建乘数列?我已经为您详细介绍了以下步骤:
groupby
+transform
获取值的计数-
df['count'] = df.groupby('value').value.transform('count')
pd.Series.map
将名称映射到乘数-
df['multiplier'] = df['name'].map(mydict)
在旧版本中,您可以考虑<代码> df [乘法器]=df [名称]。代替(MyDICT)< /Cord>。
df['total'] = df['count'] * df['multiplier']
标记用于表示所引用的语言或库。标题中不需要它们。@jpp如果我省略列访问器,它将复制数据帧中每列的计数(我只需要一个,我可以选择其中任何一个;))谢谢@COLDSPEED的帮助。是否有其他方法可以实现map的功能?我使用的是熊猫的旧版本,地图不可用。。。我一直在使用版本0.10,不幸的是,我没有办法解决这个问题。@bwrbbit看看是否
df['multiplier']=df['name'].replace(mydict)
有效。@bwrbbit那里有一些古老的熊猫。@bwrbbit最近版本的熊猫为相同的例程提供了更好的性能。问问你的老板他们是否能对这个版本做些什么。
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