4 回答
TA贡献1853条经验 获得超6个赞
您可以使用groupby().transform()然后使用布尔索引:
medians = df.groupby(['item','date'])['data'].transform('median')
# drop duplicates in the case
# there are multiple rows equal to median
df[df['data']==medians].drop_duplicates(['item','date','data'])
输出:
item date data
1 22 2012-03-10 20
4 24 2012-03-11 50
TA贡献1946条经验 获得超3个赞
您可以使用以下示例使用 pandas df['date'] = pd.to_datetime(df['date']).dt.date
df1 = df.groupby(['data','date'])['date','data'].median()
df1
TA贡献1875条经验 获得超3个赞
尝试这个:
df.groupby(['item', 'date'], as_index=False).median()
输出:
item date data
0 22 2012-03-10 20
1 24 2012-03-11 50
TA贡献1806条经验 获得超8个赞
请.groupby(),。agg(median)
df[['item', 'date', 'data']].groupby(['date', 'item',]).agg('median').reset_index()
date item data
0 2012-03-10 22 20
1 2012-03-11 24 50
添加回答
举报