[英]Python: How to generate frequency count for all variables
我有所有分類變量的數據集,我想一次為所有變量產生頻率計數。
據稱,我使用的是鳶尾花數據集函數df['class'].value_counts()
僅允許我計算一個變量。
分析數據集的所有變量僅包括通過Pandas作為csv提取的分類變量。 我正在考慮只提取第一行並放入for循環中。 為了從csv文件中提取第一行,我們使用data = pd.DataFrame(data)
將csv轉換為data = pd.DataFrame(data)
。 但是, data[0]
將產生錯誤。
為所有變量生成頻率分析或條形圖的最有效方法是什么?
具有分類變量的樣本數據集:
Mary John David Jenny
a t y n
a t n y
a u y y
a u n y
a u n n
b t y n
方法1
df.apply(lambda x: x.value_counts()).T.stack()
輸出:
Mary a 5.0
b 1.0
John t 3.0
u 3.0
David n 3.0
y 3.0
Jenny n 3.0
y 3.0
dtype: float64
方法2
df.apply(pd.value_counts).T.fillna(0)
產量
a b n t u y
Mary 5.0 1.0 0.0 0.0 0.0 0.0
John 0.0 0.0 0.0 3.0 3.0 0.0
David 0.0 0.0 3.0 0.0 0.0 3.0
Jenny 0.0 0.0 3.0 0.0 0.0 3.0
然后,您可以簡單地使用以下o創建條形圖。
df.apply(pd.value_counts).T.stack().plot(kind='bar')
輸出:
或者,您可以使用:
df.apply(pd.value_counts).fillna(0).T.plot(kind='bar')
輸出:
pd.DataFrame({i:df[i].value_counts() for i in df.columns})
注意:如果存在大量NaN,這將產生運行時錯誤,但是您可以忽略這些錯誤。 如果您不喜歡NaN,請使用
{i:df[i].value_counts() for i in df.columns}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.