python - 创建带有标签的列以在Pandas中对DataFrame进行分区。

我正在努力寻找一种整洁的方法来做以下的事情。
我有一个熊猫数据框,看起来是这样的:

data = {'Ids': [1, 2, 3, 1, 2, 3, 1, 2, 3],  'Value': [32, 56, 87, 12, 45, 78, 
14, 21, 56]}
df=pd.DataFrame(data)

Out[2]: 
    Ids  Value
0    1     32
1    2     56
2    3     87
3    1     12
4    2     45
5    3     78
6    1     14
7    2     21
8    3     56

我想添加另一列,用一个标签标识每个数据子集(id从1到3)。像这样的:
Out[3]: 
   Case  Ids  Value
0    A    1     32
1    A    2     56
2    A    3     87
3    B    1     12
4    B    2     45
5    B    3     78
6    C    1     14
7    C    2     21
8    C    3     56

我正试图以这种方式使用pandas.cut()函数,但现在已经取得了很多成功:
df["test"]=pd.cut(df1.Value, bins=3, labels=["A", "B", "C"], right=False)

有没有一个好的和整洁的方法来实现我想要的使用熊猫功能?谢谢您!


最佳答案:

我认为需要“AA>用NUMPY标引:

a = np.array(["A", "B", "C"])
df['new'] = a[df.groupby('Ids').cumcount()]
print (df)
   Ids  Value new
0    1     32   A
1    2     56   A
2    3     87   A
3    1     12   B
4    2     45   B
5    3     78   B
6    1     14   C
7    2     21   C
8    3     56   C