Pio*_*otr 3 python multi-index dataframe pandas
我在 python pandas 中与 MultiIndex DataFrame 苦苦挣扎。
假设我有一个这样的 df:
count day
group name
A Anna 10 Monday
Beatrice 15 Tuesday
B Beatrice 15 Wednesday
Cecilia 20 Thursday
Run Code Online (Sandbox Code Playgroud)
我需要的是找到每个组的名称最大值并将其从数据框中删除。
最终的 df 看起来像:
count day
group name
A Anna 10 Monday
B Beatrice 15 Wednesday
Run Code Online (Sandbox Code Playgroud)
你们有没有人知道如何做到这一点?我的想法不多了...
提前致谢!
编辑:
如果原始数据帧是:
count day
group name
A Anna 10 Monday
Beatrice 15 Tuesday
B Beatrice 20 Wednesday
Cecilia 15 Thursday
Run Code Online (Sandbox Code Playgroud)
最终的 df 需要是:
count day
group name
A Anna 10 Monday
Beatrice 15 Tuesday
B Beatrice 20 Wednesday
Cecilia 15 Thursday
Run Code Online (Sandbox Code Playgroud)
更新:
In [386]: idx = (df.reset_index('name')
.groupby('group')['name']
.max()
.reset_index()
.values.tolist())
In [387]: df.loc[df.index.difference(idx)]
Out[387]:
count day
group name
A Anna 10 Monday
B Beatrice 20 Wednesday
Run Code Online (Sandbox Code Playgroud)
In [326]: df.loc[df.index.difference(df.groupby('group')['count'].idxmax())]
Out[326]:
count day
group name
A Anna 10 Monday
B Beatrice 15 Wednesday
Run Code Online (Sandbox Code Playgroud)
PS很可能有更好的方法来做到这一点......