【发布时间】:2021-04-10 02:53:12
【问题描述】:
我有一个这样的多索引数据框:
PID Fid x y
A 1 2 3
2 6 1
3 4 6
B 1 3 5
2 2 4
3 5 7
我想删除每个患者 (PID) 具有最高 x 值的行。我需要获取一个包含剩余行和所有列的新数据框,以继续对这些数据进行分析,例如剩余 y 值的平均值。 数据框应如下所示:
PID Fid x y
A 1 2 3
3 4 6
B 1 3 5
2 2 4
我使用了Python Multiindex Dataframe remove maximum的代码
idx = (df.reset_index('Fid')
.groupby('PID')['x']
.max()
.reset_index()
.values.tolist())
df_s = df.loc[df.index.difference(idx)]
我可以获取 idx,但不能将它们从数据框中删除。它说 TypeError: unhashable type: 'list'
我做错了什么?
【问题讨论】:
标签: python pandas dataframe multi-index