簡體   English   中英

如何計算不同數據框的列中列表值的出現次數?

[英]How to count occurrences of values of a list in a column of a different dataframe?

我需要計算列表的值出現在不同DataFrame的列中的次數。

我嘗試使用df['Column'].value_counts() 但是,如果值在列表中但不在列中,則它不會顯示在結果中。

df = pd.DataFrame({'Column': [HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW]})

list = ['HIGH', 'MEDIUM', 'LOW']

我希望輸出為:

HIGH      3
MEDIUM    0
LOW       4

但是使用.value_counts()我得到:

HIGH      3
LOW       4

有人可以指出我如何實現這一目標嗎? 是否可以編寫一段代碼,以便無論數據如何分配,我的輸出始終顯示HIGH,MEDIUM和LOW的計數? (下次加載數據時,可能沒有HIGH值,而不是MEDIUM)

一種快速修復reindex

df.Column.value_counts().reindex(list,fill_value=0)
HIGH      3
MEDIUM    0
LOW       4
Name: Column, dtype: int64

pd.Categorical另一種方式

pd.Categorical(df.Column,list).value_counts()
HIGH      3
MEDIUM    0
LOW       4
dtype: int64

嘗試以下操作,它首先創建一個空系列,然后將其與value_counts系列組合:

pd.Series(0, index=list).combine(df.value_counts(), max)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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