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

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

如何計算 pandas 中列表列中值的總出現次數?

如何計算 pandas 中列表列中值的總出現次數?

呼啦一陣風 2024-01-24 20:54:10
我有這個數據框,我想計算該列中菜肴出現的次數(列表)。   |preferred_dishes    ----------------------------------------------1   |[Comida Variada, Comida Brasileira, Lanches]2   |[Salgados, Lanches, Comida Japonesa]10  |[Comida Chinesa, Comida Japonesa]11  |[Pizza, Comida Brasileira, Lanches]15  |[Comida Italiana, Comida Brasileira, Fruto...我試過這個:test = pd.Series([x for item in df_dishes.preferred_dishes for x in item]).value_counts()還有別的辦法嗎?
查看完整描述

2 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

您可以使用explode以下命令來獲得相同的效果pd.Series():


df.preferred_dishes.explode().value_counts()

包含摘錄的輸出:


Lanches              3

Comida Brasileira    3

Comida Japonesa      2

Salgados             1

Fruto...             1

Comida Variada       1

Pizza                1

Comida Chinesa       1

Comida Italiana      1

Name: preferred_dishes, dtype: int64


查看完整回答
反對 回復 2024-01-24
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

之前的答案非常適合,pandas >= 0.25因為Series.explode僅在版本 0.25.0 的更高版本中工作。例如,我使用的是 pandas 版本 0.24.2。

順便說一句,你可以嘗試一下,以了解你的 pandas 和相關包的版本:

pd.show_versions()

因此,您可能對以下解決方案感興趣,而不考慮 pandas 版本。

counts = (df.reset_index(df.columns.drop('preferred_dishes',1).tolist())

? ? .preferred_dishes.str.replace('[', '')

? ? .str.replace(']', '')

? ? .str.split(',', expand=True)

? ? .stack()

? ? .value_counts()

? ? )

counts

輸出:


?Lanches? ? ? ? ? ? ? 3

?Comida Brasileira? ? 3

?Comida Japonesa? ? ? 2

?Fruto...? ? ? ? ? ? ?1

Salgados? ? ? ? ? ? ? 1

Pizza? ? ? ? ? ? ? ? ?1

Comida Chinesa? ? ? ? 1

Comida Variada? ? ? ? 1

Comida Italiana? ? ? ?1

dtype: int64

或者,更簡單地說:


counts = pd.Series(df.preferred_dishes.str.replace('[', '')

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?.str.replace(']', '')

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?.str.split(',').sum()).value_counts()

counts

輸出:


?Lanches? ? ? ? ? ? ? 3

?Comida Brasileira? ? 3

?Comida Japonesa? ? ? 2

?Fruto...? ? ? ? ? ? ?1

Salgados? ? ? ? ? ? ? 1

Pizza? ? ? ? ? ? ? ? ?1

Comida Chinesa? ? ? ? 1

Comida Variada? ? ? ? 1

Comida Italiana? ? ? ?1

dtype: int64


查看完整回答
反對 回復 2024-01-24
  • 2 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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