[英]How to plot data frame columns with exactly two unique values?
我正在嘗試遍歷Pandas數據框,並僅為正好包含兩個唯一值的列生成條形圖。 我設想最終的條形圖在X軸和Y軸上包含兩個唯一值以顯示行數。
我已經能夠在數據框(df_clean)上生成一個Series,它向我顯示每列的唯一值數量:
col_values = df_clean.apply(lambda x: len(x.unique()))
但是我完全不知道如何:
在同一代碼中,我能夠成功遍歷df_clean並成功繪制所有int和float類型的列。 我正在努力解決上述問題的工作代碼。
i = 1
c_num_cols = len(df_clean.select_dtypes(["int64","float64"]).columns)
for column in df_clean.select_dtypes(["int64","float64"]).columns:
plt.subplot(c_num_cols,(c_num_cols % 2) + 1,i)
plt.subplots_adjust(hspace=0.5)
df_clean[column].plot(kind = 'hist', figsize = [15,c_num_cols * 4], title = column)
i += 1
嘗試使用Series.nunique
和Series.value_counts
:
binary_cols = df.nunique()[lambda x: x == 2].index
for i, col in enumerate(binary_cols):
plt.subplot(len(binary_cols), (len(binary_cols) % 2) + 1, i+1)
plt.subplots_adjust(hspace=0.5)
df[col].value_counts().plot(kind='bar')
# Setup
df = pd.DataFrame({'col1': list('aaaaaaabbbbbbbb'),
'col2': list('aaabbbcccdddeee'),
'col3': [1] * 9 + [3] * 6})
binary_cols = df.nunique()[lambda x: x == 2].index
for i, col in enumerate(binary_cols):
plt.subplot(len(binary_cols), (len(binary_cols) % 2) + 1, i+1)
plt.subplots_adjust(hspace=0.5)
df[col].value_counts().plot(kind='bar')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.