python - Pandas Group 除以 Max

标签 python pandas

我试图通过除以每个组中的最大用户数来标准化用户数。我能够得到要计算的结果(注释掉有效的打印),但我无法将结果保存回原始表。下面的代码不会引发错误,但也不会向 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]

最佳答案

使用 groupbytransform

weeklyPerson.groupby('Person').users.transform(lambda x: x / x.max())

根据 @Jeffsuggestion

weeklyPerson.users / weeklyPerson.groupby('Person').users.transform(np.max)

这避免了在不必要时使用 lambda

关于python - Pandas Group 除以 Max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39282355/

相关文章:

python - 如何使用 Python paramiko sftp 在获取具有最新时间戳的文件名时添加错误处理

python - 将多列表转换为两列表

python - 用数字索引重新采样 Pandas 系列

pandas - 从多个字典创建一个pandas DataFrame

python pandas OLS.predict,正确的签名是什么?

python - 在python中获取第n行字符串

python - PyTables 有什么优势?

python - : asynchronous request handler with blocking tasks handled by worker pool的表现

python - 如何根据分组值将字典插入数据框的行?

python - 使用 asyncio 和 dnspython 异步发送 DNS 查询