![](/img/trans.png)
[英]Pandas multiindex dataframe - Selecting max from one index within multiindex
[英]Pandas multiindex dataframe - Selecting max from one index within multiindex multi culomn
我在下面 Dataframe 如何找到專用結果。 我發現 A 列的多行最大值。
col_0 col_1
Caps Lower
A a 0 0.246490 2
1 -1.265711 5
2 -0.477415 6
3 -0.355812 1
4 -0.724521 2
b 0 -0.409198 1
1 -0.062552 1
2 -0.731789 9
3 1.131616 5
4 0.085248 3
B a 0 0.193948 7
1 2.010710 6
2 0.289300 4
3 0.305373 3
4 1.376965 4
b 0 0.210522 1
1 1.431279 3
2 -0.247171 1
3 0.899074 8
4 0.639926 1
結果必須是:
col_0 col_1
Caps
A -0.731789 9
B 0.899074 8
如何使用col_1
找到最大值?
根據您想要的示例 output,您的問題似乎是:如何返回每個Caps
組中col_1
值最大的行。
您的示例輸入使它看起來像'Caps'
和'Lower'
是您的索引,但如果它們不是索引而只是常規列,它會更容易一些。
我這樣設置你的數據:
df = pd.DataFrame({'Caps': np.repeat(['A', 'B'], 10),
'Lower': list(np.repeat(['a', 'b'], 5)) * 2,
'col_0': [0.246490, -1.265711, -0.477415, -0.355812, -0.724521,
-0.409198, -0.062552, -0.731789, 1.131616, 0.085248,
0.193948, 2.010710, 0.289300, 0.305373, 1.376965,
0.210522, 1.431279, -0.247171, 0.899074, 0.639926],
'col_1': [2, 5, 6, 1, 2, 1, 1, 9, 5, 3, 7, 6, 4, 3, 4, 1, 3, 1, 8, 1]
})
[pandas.Series.idxmax][1]
應該有幫助,它返回每個Caps
組中col_1
最大的行的索引:
df.groupby('Caps')['col_1'].idxmax()
# Caps
# A 7
# B 18
# Name: col_1, dtype: int64
將其插入:
df.loc[df.groupby('Caps')['col_1'].idxmax()]
# Caps Lower col_0 col_1
# 7 A a -0.731789 9
# 18 B b 0.899074 8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.