在 pandas 中,如何根据给定的分组方式为行添加一个新列来进行编号?例如,假设有以下 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'])
进行适当的分组和排序,现在的问题是如何到达新列并为每一行打上标签。