【问题标题】:How to bin data from multiple columns?如何对多列中的数据进行分箱?
【发布时间】:2019-03-25 01:27:33
【问题描述】:

我有以下 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])

【问题讨论】:

    标签: pandas bin


    【解决方案1】:

    您可以先使用melt,然后使用pd.crosstab,然后尝试从pandas查看plot

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

    【讨论】:

    • 我在其他类型的 df 中也有其他列,所以我得到一个“'
    • @user10939484 做meltdf=df[['1','2','3']].melt()
    • 没关系,只是为我需要的列创建了一个单独的数据框。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 2021-09-26
    • 1970-01-01
    相关资源
    最近更新 更多