为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据数据框中其他列的值填充列?

如何根据数据框中其他列的值填充列?

斯蒂芬大帝 2022-12-20 16:25:53
我正在尝试根据某些条件填充该列。你能帮我怎么做吗?例子: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


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信