如何在python中为列做排名/组?

时间:2017-10-03 16:06:35

标签: python

我试图像在SAS中使用Proc Rank代码一样在Python中进行分组/排名。我试过的代码是

Merge_Data['FrSeg'] = Merge_Data['Frequency'].rank(method='dense').astype(int)

它给了我一个带有相同数字的输出。我想分成3个。 例如,频率从等级1中的1-10,等级2中的11-20和等级3中的21-以上。我有min = 1和max = 68频率(如果您想知道,则输入数字订单)。< / p>

感谢您的提前帮助

1 个答案:

答案 0 :(得分:0)

您可能对numpypandas套餐感兴趣:

school is not defined

输出:

import pandas as pd
import numpy as np

# dataframe to hold the list of values
df = pd.DataFrame({'FrSeg': [33, 66, 26, 5, 16, 31, 34, 10, 17, 40]})

# set the rank ranges
ranges = [0, 10, 20, 68]

# pandas.cut:
#     returns indices of half-open bins to which each value of 'FrSeg' belongs.
print df.groupby(pd.cut(df['FrSeg'], ranges)).count()