Итак, я создаю фрейм данных с данными, похожими на ваш набор данных:
df = pd.DataFrame(np.random.rand(5, 3)) * 1000
df.iloc[0:3, 2] = 0
df.iloc[[1, 3], :] = -1
print(df)
выход:
0 1 2
0 679.473489 844.456345 0.0000
1 -1.000000 -1.000000 -1.0000
2 125.684455 696.829219 0.0000
3 -1.000000 -1.000000 -1.0000
4 97.520572 869.919917 528.5606
Создайте фрейм данных для категорий, затем переберите столбцы, чтобы получить qcut для каждого столбца:
cat_df = pd.DataFrame(index=df.index, columns=df.columns)
for column in df.columns:
cat_df[column] = pd.qcut(df.loc[:,column],3,labels=["low","mid","high"],duplicates='drop')
print(cat_df)
выход: * +1010 *
0 1 2
0 high high mid
1 low low low
2 high mid mid
3 low low low
4 mid high high
Тогда коробочный сюжет:
df.boxplot()
plt.show()
![enter image description here](https://i.stack.imgur.com/fMOAn.png)