添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
product_x  year     total_price      total_sale
A          2016     50               200           
B          2016     200              100           
A          2017     250              250           
B          2017     1000             300           
A          2018     100              50           
B          2018     900              600
K          2016     20               300
D          2016     100              450

在上面的数据框架中,我想添加新的列,名为total_sale_Quartile。

计算总销售额的四分位数的解释。

对total_sale进行排序,如下图所示

50, 100, 200, 250, 300, 300, 450, 600
Q1 = 50 to 100
Q2 = 101 to 250
Q3 = 251 to 300
Q4 = 301 to 600

Expected output:

product_x  year     total_price      total_sale   total_sale_Quartile
A          2016     50               200          Q2
B          2016     200              100          Q1    
A          2017     250              250          Q2  
B          2017     1000             300          Q3   
A          2018     100              50           Q1    
B          2018     900              600          Q4
K          2016     20               300          Q3
D          2016     100              450          Q4
    
python
pandas
dataframe
Danish
Danish
发布于 2020-06-27
1 个回答
Shubham Sharma
Shubham Sharma
发布于 2020-06-27
已采纳
0 人赞同

Use, pd.cut带可选参数include_lowest=True,将total_sale中的值归入Quartiles

df['total_sale_Quartile'] = (
    pd.cut(
        df['total_sale'], bins=[50, 100, 250, 300, 600],
        labels=['Q1', 'Q2', 'Q3', 'Q4'], include_lowest=True)

OR, use pd.qcut如果你想仅仅根据量化范围对该列进行分类。

df['total_sale_Quartile'] = (
    pd.qcut(df['total_sale'], 4, labels=['Q1', 'Q2', 'Q3', 'Q4'])

Result:

# print(df)
  product_x  year  total_price  total_sale total_sale_Quartile
0         A  2016           50         200                  Q2
1         B  2016          200         100                  Q1
2         A  2017          250         250                  Q2
3         B  2017         1000         300                  Q3