我在 DataFrame 中有一组具有重复索引的值:
value
CDE 2.318620
CDE -3.097715
LXU -3.791043
LXU 4.818995
SWN 3.059964
SWN -4.349304
OAS -3.336539
LPI -3.037097
LPI -5.701044
LPI -3.519923
CZR -3.270018
CZR -3.056712
所需的结果是仅保留最高绝对值并在新列中返回平均值:
value average
CDE -3.097715 -0.389547
LXU 4.818995 0.513976
SWN -4.349304 -0.644670
OAS -3.336539 -3.336539
LPI -5.701044 -4.086021
CZR -3.270018 -3.163365
我试图将 .apply(lambda) 应用于重复的行,但出现“轴”错误:
max_absolute = lambda x: max(x.min(), x.max(), key=abs)
df_duplicate_absmax = df.groupby(df.index).apply(max_absolute, axis=1)
ps:调整 Abhi 的解决方案以使用 NaN:
df1 = df.groupby(df.index)['value'].agg([lambda x: max(x[~np.isnan(x)], key=abs), 'mean'])
米琪卡哇伊
倚天杖
相关分类