在pandas中,可以使用groupby
操作对DataFrame进行分组,并生成一个GroupBy对象。要获取每个组的组ID值的列,可以使用ngroup()
方法。
ngroup()
方法返回一个表示每个组的整数值的Series,这些整数值对应于每个组的组ID。它可以作为DataFrame的新列添加到原始数据中。
以下是一个示例代码:
import pandas as pd
# 创建一个示例DataFrame
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'two', 'two', 'one', 'two', 'one'],
'C': [1, 2, 3, 4, 5, 6, 7, 8]}
df = pd.DataFrame(data)
# 使用groupby操作分组,并获取组ID值的列
df['group_id'] = df.groupby(['A', 'B']).ngroup()
print(df)
输出结果如下:
A B C group_id
0 foo one 1 0
1 bar one 2 1
2 foo two 3 2
3 bar two 4 3
4 foo two 5 2
5 bar one 6 1
6 foo two 7 2
7 foo one 8 0
在上述示例中,我们首先创建了一个包含'A'、'B'和'C'列的DataFrame。然后,我们使用groupby(['A', 'B'])
对DataFrame进行分组。接下来,使用ngroup()
方法获取每个组的组ID值,并将其赋值给新的列'group_id'。最后,打印输出DataFrame。
这样,我们就成功根据groupby
操作生成的组获取了pandas DataFrame的组ID值的列。
领取专属 10元无门槛券
手把手带您无忧上云