简体   繁体   中英

How to divide a column into 5 groups by the column value sorted, and then add column's

How to divide an column into 5 groups by the column's value sorted.

and add a column by the groups

for example

import pandas as pd
df = pd.DataFrame({'x1':[1,2,3,4,5,6,7,8,9,10]})

and I want add columns like this:

You probably want to look at pd.cut , and set the argument bins to an integer of however many groups you want, and the labels argument to False (to return integer indicators of your groups instead of ranges):

df['add_col'] = pd.cut(df['x1'], bins=5, labels=False) + 1

>>> df
   x1  add_col
0   1        1
1   2        1
2   3        2
3   4        2
4   5        3
5   6        3
6   7        4
7   8        4
8   9        5
9  10        5

Note that the + 1 is only there so that your groups are numbered 1 to 5 , as in your desired output. If you don't say + 1 they will be numbered 0 to 4

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM