如何从多个列中收集数据?

时间:2019-03-25 01:27:34

标签: pandas bin

我有以下df

|   1   |   2   |   3   |
-------------------------
  0.11     0.25    0.74
  0.32     0.93    0.26
  0.44     0.28    0.76
  0.15     0.29    0.79

我正在使用垃圾箱:

bins = [0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1]

我创建了3个bin列,并在它们上运行了一个value_counts()。所以现在我知道了这3列中每个列的每个bin中有多少个值。但是我在将其绘制到小节图时遇到了麻烦。寻找三重条形图

df['Bin1'] = pd.cut(df['1'], bins)
df['Bin2'] = pd.cut(df['2'], bins)
df['Bin3'] = pd.cut(df['3'], bins)
Bin1_count = df['Bin1'].value_counts().values
Bin2_count = df['Bin2'].value_counts().values
Bin3_count = df['Bin3'].value_counts().values
x_axis = df['Bin1'].value_counts().index

sns.barplot(x = x_axis, y = [Bin1_count,Bin2_count,Bin3_count])

1 个答案:

答案 0 :(得分:2)

您可以先使用melt,然后再使用pd.crosstab,然后尝试从pandasplot

meltdf=df.melt()
meltdf.value=pd.cut(meltdf.value,bins)
pd.crosstab(meltdf.variable,meltdf.value).plot(kind='bar')