我有以下数据框:
我想使用一个字典来记录每个用户的相遇次数,并在循环遍历数据帧时更新他/她的速度。
例如,第一次看到“Anna”时,字典如下:
第二次我们看到“Anna”时,它变成了:
最终,这个字典应该是:
计数部分很容易:
但是创建一个空字典列表并更新第二个值的好方法是什么?谢谢!
user | speed
------------
Anna | 1.0
Bell | 1.2
Anna | 1.3
Chad | 1.5
Bell | 1.4
Anna | 1.1
我想使用一个字典来记录每个用户的相遇次数,并在循环遍历数据帧时更新他/她的速度。
例如,第一次看到“Anna”时,字典如下:
{"Anna": [1, 1.0]}
第二次我们看到“Anna”时,它变成了:
{"Anna": [2, 1.3], "Bell": [1, 1.2]}
最终,这个字典应该是:
{"Anna": [3, 1.1], "Bell": [2, 1.4], "Chad": [1, 1.5]}
计数部分很容易:
>>> import pandas as pd
>>> record = pd.DataFrame({"user": ("Anna", "Bell", "Anna", "Chad", "Bell", "Anna"), "speed": (1.0, 1.2, 1.3, 1.5, 1.4, 1.1)})
>>> record
speed user
0 1.0 Anna
1 1.2 Bell
2 1.3 Anna
3 1.5 Chad
4 1.4 Bell
5 1.1 Anna
>>> encounter = {}
>>> for i in record['user']:
... encounter[i] = encounter.get(i, 0) + 1
...
>>> encounter
{'Anna': 3, 'Bell': 2, 'Chad': 1}
但是创建一个空字典列表并更新第二个值的好方法是什么?谢谢!
df.round
和Decimal
进行修复。 - Rakesh