在数据帧中,我有一个名为“States”的列,它描述了各种事件发生的位置,因此许多行被重复,然后变为另一种状态:
States
- California
- California
- California
- California
- California
- New Mexico
- New Mexico
- New Mexico
- Hawaii
- California
我正在尝试运行一个pandas函数,该函数将为每个状态分配一个变量,但在每次状态更改时该变量都是唯一的。因此,即使状态重复,它们也不会得到与上次在列表中时相同的值。从上面的例子中,我可以得到:
new_column
- 1
- 1
- 1
- 1
- 1
- 2
- 2
- 2
- 3
- 4 #even though this is 'California', it's a new,unique value
我现在已经试过了
def new_id(stateVal):
x = Kentucky #first state in the list that I'm comparing to
y = 1 #the unique value
if stateVal == x:
return y
elif stateVal != x:
x == w
y++
return y
else:
return 0
当我将它应用到数据集中的STATE列时,它没有正常工作。Pandas或NumPy中是否有预定义的函数来帮助实现这一点
您可以这样做,将每个元素与下一个元素进行比较:
也许有一种更干净的方法可以避免这种循环,但我认为这就是你想要的
编辑一条直线,给出相同的输出:
相关问题 更多 >
编程相关推荐