在熊猫中,如何添加一个新的列,该列根据给定的分组枚举?枚举DataFrame中每个组的每一行
例如,假设下面的数据框:
import pandas as pd
import numpy as np
a_list = ['A', 'B', 'C', 'A', 'A', 'C', 'B', 'B', 'A', 'C']
df = pd.DataFrame({'col_a': a_list, 'col_b': range(10)})
df
col_a col_b
0 A 0
1 B 1
2 C 2
3 A 3
4 A 4
5 C 5
6 B 6
7 B 7
8 A 8
9 C 9
我想补充一个col_c
,让我的基础上col_a
分组和排序col_b
的“组”的第N行。
所需的输出:
col_a col_b col_c
0 A 0 1
3 A 3 2
4 A 4 3
8 A 8 4
1 B 1 1
6 B 6 2
7 B 7 3
2 C 2 1
5 C 5 2
9 C 9 3
我挣扎去col_c
。您可以使用.sort_index(by=['col_a', 'col_b'])
进行正确的分组和排序,现在可以进入新列并为每行添加标签。
这基本上回答了这个问题 - 虽然gjreda要求枚举按col_b排序的col_a。 – gabe
@gabe这很奇怪,不知道我是如何管理的:)\ –
太棒了,谢谢@AndyHayden。知道这将是一个groupby,但无法弄清楚如何正确应用它。 –