如何对多列数据进行分箱?
How to bin data from multiple columns?
我有以下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])
您可以先使用 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
| 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])
您可以先使用 melt
,然后使用 pd.crosstab
,然后尝试从 pandas
plot
meltdf=df.melt()
meltdf.value=pd.cut(meltdf.value,bins)
pd.crosstab(meltdf.variable,meltdf.value).plot(kind='bar')