4 回答

TA貢獻1853條經(jīng)驗 獲得超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條經(jīng)驗 獲得超3個贊
您可以使用以下示例使用 pandas df['date'] = pd.to_datetime(df['date']).dt.date
df1 = df.groupby(['data','date'])['date','data'].median()
df1

TA貢獻1875條經(jīng)驗 獲得超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條經(jīng)驗 獲得超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
添加回答
舉報