亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我怎樣才能找到頻率?

我怎樣才能找到頻率?

月關寶盒 2023-10-18 21:18:24
我有這個數據框。如何找到 b 列中重復次數最多的 3 個數字?import pandas as pdimport numpy as npdf = pd.DataFrame({"a": [1,2,2,4,2,3], "b": [np.nan, np.nan, '2,3', 3, '3,5,1',2]})我猜答案應該是3,2,5或者3,2,1
查看完整描述

2 回答

?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

使用 pandas 和 python 的組合collections.Counter


from collections import Counter


a = list(dict(Counter(df.b.dropna().astype(str).str.split(',').sum()).most_common(3))

                                   .keys())


In [132]: a

Out[132]: ['3', '2', '5']


查看完整回答
反對 回復 2023-10-18
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

splitb分隔符周圍的列,,然后使用explode像行一樣轉換列表中的每個元素,最后使用value_counts+head獲取前 3 個重復元素:

df['b'].dropna().astype(str).str.split(',')\
       .explode().value_counts().head(3).index.tolist()

explode在 pandas version >= 中可用0.25,對于 pandas version <0.25使用:

pd.value_counts(np.hstack(df['b'].dropna().astype(str).str.split(','))).head(3).index.tolist()

['3', '2', '5']


查看完整回答
反對 回復 2023-10-18
  • 2 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號