【发布时间】:2021-05-07 09:03:07
【问题描述】:
我正在尝试在数据框中创建一列来描述观察所属的组或bin。这个想法是根据某个列对数据框进行排序,然后开发另一列来表示该观察属于哪个 bin。如果我想要十分位数,那么我应该能够告诉一个函数我想要 10 个相等(或接近相等)的组。
我尝试了pandas qcut,但这只是给出了垃圾箱上限和下限的元组。我只想要 1,2,3,4....等。以以下为例
import numpy as np
import pandas as pd
x = [1,2,3,4,5,6,7,8,5,45,64545,65,6456,564]
y = np.random.rand(len(x))
df_dict = {'x': x, 'y': y}
df = pd.DataFrame(df_dict)
这给出了 14 个观察值的 df。我怎样才能得到 5 个相等的 bin 组?
期望的结果如下:
x y group
0 1 0.926273 1
1 2 0.678101 1
2 3 0.636875 1
3 4 0.802590 2
4 5 0.494553 2
5 6 0.874876 2
6 7 0.607902 3
7 8 0.028737 3
8 5 0.493545 3
9 45 0.498140 4
10 64545 0.938377 4
11 65 0.613015 4
12 6456 0.288266 5
13 564 0.917817 5
【问题讨论】: