我有这个熊猫数据框:
df = pd.DataFrame(
{
"col1": [1,1,2,3,3,3,4,5,5,5,5]
}
)
df
如果col1中的值不等于下一行中col1的值,我想添加另一列,该列显示“last”。它应该是这样的:
到目前为止,如果col1中的值不等于下一行中col1的值,则可以创建一个包含True的列;否则,我可以创建一个包含False的列:
^{pr2}$现在有点像
^{3}$很好,但这显然是错误的语法。我怎么能做到这一点?在
最后,我还想添加一些数字,指示一个值在这个值之前出现了多少次,而最后一个值总是标记为“last”。应该是这样的:
我不确定这是我开发的另一步,还是需要新的方法。我读到,如果我想在修改值时遍历数组,我应该使用apply()。但是,我不知道如何在这里面包含条件。你能帮助我吗?在
非常感谢!在
有一个办法。您可以根据} 。然后使用类似的标准添加
col1
中的下一个值是否与当前行的值相同来获得累积计数,定义一个自定义分组程序,并取^{last
,使用df.shift
:使用
.shift
查找事物的变化。然后您可以使用.where
适当地屏蔽.fillna
输出:
^{pr2}$另外,
update
是一种数据帧的方法,因此应该避免将列命名为'update'
考虑到索引是递增的,(1)
cuncount
每个组,然后在每个组内取(2)max
索引并设置字符串相关问题 更多 >
编程相关推荐