我正在尝试通过除以每个组中的最大用户数来归一化用户数。我能够得到要计算的结果(注释了可以打印的内容),但是我很难将结果保存回原始表。下面的代码不会引发错误,但是也不会向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())
每个@杰夫的建议
weeklyPerson.users / weeklyPerson.groupby('Person').users.transform(np.max)
这样可以避免在不需要时使用
lambda
。关于python - Pandas 集团除以马克斯,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39282355/