我有一个名为 df_paths 的数据框。在这个数据框中,我有用户和试用版。并且每次我都有一个 v 和 u 的值。我想为每个用户的每次试验计算 v 的最大值并将其添加到列中。我该怎么办?
查看数据帧快照的图像:
答案 0 :(得分:2)
如果需要聚合值使用 GroupBy.agg
:
df = df.groupby(['user','trial']).agg(max_u = ('u','max'),
min_u = ('u','min'),
max_v = ('v','max'),
min_v = ('v','min'))
如果需要新列,请使用 GroupBy.transform
:
g = df.groupby(['user','trial'])
df[['max_u','max_v']] = g[['u','v']].transform('max')
df[['min_u','min_v']] = g[['u','v']].transform('min')