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