python – Pandas根据条件为每一行创建一个唯一的id
发布时间:2020-12-20 11:09:00 所属栏目:Python 来源:网络整理
导读:我有一个数据集,其中一列如下.我想根据以下条件创建一个新列. 对于column_name中的值,如果存在1,则创建一个新ID.如果存在0,则还会创建新ID.但是如果在1个以上的连续行中重复1,那么对于所有行,id应该相同.样本输出结果如下所示. column_name1001111001column_
我有一个数据集,其中一列如下.我想根据以下条件创建一个新列.
对于column_name中的值,如果存在1,则创建一个新ID.如果存在0,则还会创建新ID.但是如果在1个以上的连续行中重复1,那么对于所有行,id应该相同.样本输出结果如下所示. column_name 1 0 0 1 1 1 1 0 0 1 column_name -- ID 1 -- 1 0 -- 2 0 -- 3 1 -- 4 1 -- 4 1 -- 4 1 -- 4 0 -- 5 0 -- 6 1 -- 7 解决方法
说你的系列是
s = pd.Series([1,1,1]) 然后你可以使用: >>> ((s != 1) | (s.shift(1) != 1)).cumsum() 0 1 1 2 2 3 3 4 4 4 5 4 6 4 7 5 8 6 9 7 dtype: int64 这将检查当前条目是否为1,或者前一个条目不是1,然后对结果执行累积求和. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |