python-3.x 如何在聚合中使用idxmax获取其他列的对应值

webghufk  于 2023-07-01  发布在  Python
关注(0)|答案(1)|浏览(88)

下面是代码

weekly = (df.groupby(['Year','Qtr_Year'], as_index=False).agg(High=('High',  'max'),D_HIGH='High','idxmax')))

我想使用idxmax并在agg中找到相应的日期。仅对于idxmin和find date值是类似的。如下所示
Weekly =(df.groupby(['Year','Qtr_Year'],as_index=False).agg(High=('High','max'),D_HIGH=('High','idxmax'),Date_High('Date',-)
我尝试了df.loc和相应的idxmax和idxmin。

rjee0c15

rjee0c151#

我尝试了df.loc和相应的idxmaxidxmin
这是正确的方式。您可以通过两个步骤提取数据:

# Step 1: extract idxmin and idxmax
idx = df.groupby(['Year', 'Qtr_Year'])['High'].agg(['idxmin', 'idxmax'])

# Step 2: find corresponding rows
df1 = df.loc[idx['idxmin']].add_suffix('_Min').reset_index(drop=True)
df2 = df.loc[idx['idxmax']].add_suffix('_Max').reset_index(drop=True)

# Merge your dataframes
out = pd.concat([df1, df2], axis=1)

相关问题