pandas分组选中最大值并且新增列

题目 

根据每个session_id分组,将popular最大的值设为这个session中所有popular的值

category  item_id  label  popular  session_id
0     4729   True     53.0        4069
0     4729   True     53.0        4069
0     4729   True     53.0        4069
0     5140   True    351.0        4069
0     5140   True    351.0        4069
0     5140   True    351.0        4069
0     5140   True    351.0        4069
0     5210   True     25.0        9797
0     5210   True     25.0        9797
0     5210   True     25.0        9797
0     4999   True      8.0        9797
0     4999   True      8.0        9797
0      604   True     10.0       34213
0     1785   True    214.0       34213
0      666   True     46.0       34213
0     5325   True   1129.0       34544
0     5322   True   3586.0       34544
0     5322   True   3586.0       34544

代码 

import pandas as pd


# 根据 session_id 分组,将每个会话中的 popular 的最大值设为该会话中所有 popular 的值
df['popular'] = df.groupby('session_id')['popular'].transform('max')

# 移除重复行(根据具体需要选择移除或否)
df = df.drop_duplicates().reset_index(drop=True)

print(df)

 

效果:

pandas分组选中最大值并且新增列_第1张图片

你可能感兴趣的:(pandas,python,数据分析)