[英]How can I find the most frequent two-column combination in a dataframe in python
我在pandas數據框中的數據如下:
df = pd.DataFrame({'a':[1,2,3,3,4,4,4], 'b':[2,3,4,4,5,5,5]})
所以數據框看起來像這樣:
a b
0 1 2
1 2 3
2 3 4
3 3 4
4 4 5
5 4 5
6 4 5
這里的列'a','b'組合是:12(1),23(1),34(2),45(3)。 我試圖選擇4和5並將它們打印出來,因為它們的組合最常出現(3次)。
我的代碼是:
counts = df.groupby(['a','b']).size().sort_values(ascending=False)
print(counts)
輸出:
a b
4 5 3
3 4 2
2 3 1
1 2 1
dtype: int64
但這只給我一個專欄[3,2,1,1]。 這是數字組合計數。 如何單獨訪問元素4和5以便打印出來?
提前致謝!
Pandas GroupBy
對象由石斑魚鍵索引。 在多個鍵的情況下,這將意味着MultiIndex
。 您可以只提取結果的第一個索引,以給出表示最常見組合的tuple
:
counts.index[0] # (4, 5)
使用idxmax
,即使結果是idxmax
,您仍然可以找到最大值的索引
df.groupby(['a','b']).size().idxmax()
Out[15]: (4, 5)
最簡單的一種在pandas DataFrame中使用模式。 它會在行或列中提供最常用的值:
>>> df
a b
0 1 2
1 2 3
2 3 4
3 3 4
4 4 5
5 4 5
6 4 5
>>> df.mode()
a b
0 4 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.