我正在尝试根据某些条件填充该列。你能帮我怎么做吗?
示例:
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概念。那么有什么方法可以填充此列?
答案 0 :(得分:1)
在布尔系列上使用m = test==0
((m[:-1]) & (~m[1:])).sum()
:
.cumsum()
打印:
df['order'] = (df['Name'] != df['Name'].shift()).cumsum()
print(df)