Python 如何使用两个唯一的值绘制数据框列?
我试图循环一个Pandas数据框,并仅为包含两个唯一值的列生成条形图。我设想最终的条形图包含X轴上的两个唯一值,Y轴显示行数 我已经能够从我的数据框(df_clean)中生成一个系列,它显示了每列的唯一值的数量:Python 如何使用两个唯一的值绘制数据框列?,python,pandas,Python,Pandas,我试图循环一个Pandas数据框,并仅为包含两个唯一值的列生成条形图。我设想最终的条形图包含X轴上的两个唯一值,Y轴显示行数 我已经能够从我的数据框(df_clean)中生成一个系列,它显示了每列的唯一值的数量: col_values = df_clean.apply(lambda x: len(x.unique())) 但我完全不知道如何: 通过my df_clean循环,仅打印具有两个唯一值的列 如何在一个图中生成多个图(我认为matplotlib子图会有所帮助?) 在相同的代
col_values = df_clean.apply(lambda x: len(x.unique()))
但我完全不知道如何:
- 通过my df_clean循环,仅打印具有两个唯一值的列
- 如何在一个图中生成多个图(我认为matplotlib子图会有所帮助?)
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
尝试使用和:
例子
是的,这正是我需要的。非常感谢@我很高兴这对巴迪有帮助
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')