Python将一系列数据划分为若干组,用于构造方框图

2024-10-01 07:45:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据框列有值,我想将其分为两组<;100,100-1000,并构建方框图

我的代码:

df=
     value
0    10
1    30
2    60
3    90
4    30
5    350
6    670
7    230
8    80
9    900
10   200
11   840

# I want  to divide this into two groups <100, 100-1000 and draw boxplot for each group.

df['<100'] =  df['value'].le(100)
df['100-1000'] =  df['value'].gt(100)
df['group'] = df[['<100','100-1000']].eq(True).idxmax()
grpbox = df.groupby('group')['value'].agg(lambda x:list(x))
#boxplot
import seaborn as sns
sns.boxplot(x="group", y="value", data=dcacgrp)
plt.show()

目前产出:

ValueError: Could not interpret input 'group'

还有比这更好的方法吗


Tags: to数据代码ltdfvaluegroupthis
1条回答
网友
1楼 · 发布于 2024-10-01 07:45:50

试试^{}

import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt

df = pd.DataFrame({
    'value': [10, 30, 60, 90, 100, 30, 350, 670, 230, 80, 900, 200, 840]
})

df['group'] = pd.cut(df['value'],
                     bins=[0, 100, 1000],
                     labels=['<100','100-1000'],
                     right=False)

sns.boxplot(x="group", y="value", data=df)
plt.show()

boxplot

相关问题 更多 >