我试图通过除以每个组中的最大用户数来标准化用户数。我能够得到要计算的结果(注释掉有效的打印),但我无法将结果保存回原始表。下面的代码不会引发错误,但也不会向 weeklyPerson 添加任何数据:
weeklyPersonGroups=weeklyPerson.groupby('Person')
PersonMax=weeklyPersonGroups['users'].max()
for name, group in weeklyPersonGroups:
#print(weeklyPerson[weeklyPerson['Person']==name]['users']/PersonMax[name])
weeklyPerson[weeklyPerson['Person']==name]['usersNorm']=weeklyPerson[weeklyPerson['Person']==name]['users']/PersonMax[name]
最佳答案
使用 groupby
和 transform
weeklyPerson.groupby('Person').users.transform(lambda x: x / x.max())
根据 @Jeff的 suggestion
weeklyPerson.users / weeklyPerson.groupby('Person').users.transform(np.max)
这避免了在不必要时使用 lambda
。
关于python - Pandas Group 除以 Max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39282355/