簡體   English   中英

如何在python中的數據框中找到最常見的兩列組合

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM