我正在尝试根据某些条件填充该列。您能帮我怎么做吗?
例:
df:
Name Age
0 Tom 20
1 nick 21
2 nick 19
3 jack 18
4 shiv 21
5 shiv 22
6 jim 23
我用另外一列创建了数据框:df ['New'] = df ['Name']。shift()
Name Age New
0 Tom 20 NaN
1 nick 21 Tom
2 nick 19 nick
3 jack 18 nick
4 shiv 21 jack
5 shiv 22 shiv
6 jim 23 shiv
预期产量:
Name Age New order
0 Tom 20 NaN 1
1 nick 21 Tom 2
2 nick 19 nick 2
3 jack 18 nick 3
4 shiv 21 jack 4
5 shiv 22 shiv 4
6 jim 23 shiv 5
条件:如果“名称”与“新建”列匹配,则检查前一个行号,并用相同的数字填充该数字,否则填充下一个数字。它很安静,类似于density_rank(),但我不想在这里使用density_rank概念。那么有什么方法可以填充此列?
使用.cumsum()
布尔值系列:
df['order'] = (df['Name'] != df['Name'].shift()).cumsum()
print(df)
印刷品:
Name Age order
0 Tom 20 1
1 nick 21 2
2 nick 19 2
3 jack 18 3
4 shiv 21 4
5 shiv 22 4
6 jim 23 5
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句