本文介绍了如何枚举 pandas 群中的群的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样的DataFrame:
I have a DataFrame like this:
name visit foo
0 andrew BL a
1 andrew BL a
2 andrew BL b
3 andrew BL b
4 bob BL c
5 bob BL c
6 bob BL d
7 bob BL d
8 bob M12 e
9 bob M12 e
10 bob M12 f
11 bob M12 g
12 carol BL h
13 carol BL i
14 carol BL j
15 carol BL k
我如何创建一个新列来枚举每个['name', 'visit']
组的foo
组,像这样?
How can I create a new column which enumerates groups of foo
per group of ['name', 'visit']
, like this?
name visit foo enum
0 andrew BL a 1
1 andrew BL a 1
2 andrew BL b 2
3 andrew BL b 2
4 bob BL c 1
5 bob BL c 1
6 bob BL d 2
7 bob BL d 2
8 bob M12 e 1
9 bob M12 e 1
10 bob M12 f 2
11 bob M12 g 3
12 carol BL h 1
13 carol BL i 2
14 carol BL j 3
15 carol BL k 4
推荐答案
df['enum'] = df.groupby(['name', 'visit'])['foo'].transform(lambda x: pd.factorize(x)[0] + 1)
print (df)
name visit foo enum
0 andrew BL a 1
1 andrew BL a 1
2 andrew BL b 2
3 andrew BL b 2
4 bob BL c 1
5 bob BL c 1
6 bob BL d 2
7 bob BL d 2
8 bob M12 e 1
9 bob M12 e 1
10 bob M12 f 2
11 bob M12 g 3
12 carol BL h 1
13 carol BL i 2
14 carol BL j 3
15 carol BL k 4
这篇关于如何枚举 pandas 群中的群的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!