Python 基于行数据规范化数据

Python 基于行数据规范化数据,python,pandas,normalization,Python,Pandas,Normalization,我有一个带有ID和Month的df,如果ID/Month第一次出现在数据集中,我想做的是用一个数字来标记它 ID Month Number 123 201501 1 123 201502 2 123 201503 3 234 201502 1 234 201503 2 455 201503 1 如您所见,ID123在数据集中每个月都会出现多次。此外,ID234仅从月份201502开始出现。我想

我有一个带有ID和Month的df,如果ID/Month第一次出现在数据集中,我想做的是用一个数字来标记它

ID     Month      Number
123    201501     1
123    201502     2
123    201503     3
234    201502     1
234    201503     2
455    201503     1
如您所见,ID
123
在数据集中每个月都会出现多次。此外,ID
234
仅从月份
201502
开始出现。我想做的是在激活行时用数字标记行

你能给我个建议吗


不确定出了什么问题,但这是我从您提供的公式中得到的输出:

ID  Month   Num
12  201510  1
12  201511  17
12  201512  2
12  201601  3
12  201602  4
12  201603  5
12  201604  6
12  201605  7
12  201606  8
12  201607  9
12  201608  10
12  201609  11
12  201610  12
12  201611  13
12  201612  14
12  201701  15
12  201702  16
似乎你可以使用:

似乎你可以使用:


不确定哪里出了问题,但我将分享一些输出不确定哪里出了问题,但我将分享一些输出
df = df.sort_values(['ID', 'Month']).reset_index()
df['num'] = df.groupby('ID').cumcount() + 1
print (df)
    ID   Month  Number  num
0  123  201501       1    1
1  123  201502       2    2
2  123  201503       3    3
3  234  201502       1    1
4  234  201503       2    2
5  455  201503       1    1