我正在尝试根据某些条件填充该列。你能帮我怎么做吗?例子:df: Name Age0 Tom 201 nick 212 nick 193 jack 184 shiv 215 shiv 226 jim 23我创建了多一列的数据框: df['New'] = df['Name'].shift() Name Age New0 Tom 20 NaN1 nick 21 Tom2 nick 19 nick3 jack 18 nick4 shiv 21 jack5 shiv 22 shiv6 jim 23 shiv预期输出: Name Age New order0 Tom 20 NaN 11 nick 21 Tom 22 nick 19 nick 23 jack 18 nick 34 shiv 21 jack 45 shiv 22 shiv 46 jim 23 shiv 5条件:如果名称与新列匹配,则检查前一行的编号并填写相同的编号,否则填写下一个编号。它与 dense_rank() 非常相似,但我不想在这里使用 dense_rank 概念。那么这个栏目有什么办法可以填吗?
1 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
使用.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
添加回答
举报
0/150
提交
取消