[英]Is there a way to assign number of incremental value in a new column of each rows based current and previous row values of existing columns?
我有一个数据框 df,我想根据另一列的当前行和前一行在新列中添加增量 ID 号。
data = [{'X': 6, 'Y': 1}, {'X': 6, 'Y': 1}, {'X': 7, 'Y': 0}, {'X': 7, 'Y': 0},
{'X': 6, 'Y': 1}, {'X': 7, 'Y': 1}, {'X': 7, 'Y': 0}, {'X': 7, 'Y': 1} ]
df = pd.DataFrame(data)
现在条件是这样
如果当前 X = 前一个 X & 当前 Y <> 前一个 Y,
然后 ID_Number = 新增加的数字
或者
如果当前 X <> 前一个 X & 当前 Y = 前一个 Y,
然后 ID_Number = 新增加的数字
或者
如果当前 X = 前一个 X & 当前 Y = 前一个 Y,
然后 ID_Number = 与之前的 ID_Number 相同
或者
如果当前 X <> 前一个 X & 当前 Y <> 前一个 Y,
然后 ID_Number = 新增加的数字
输入数据框将如下所示
我的期望输出是这个
看看这个片段,不要忘记处理第一项。 从 ipython 复制粘贴。
In [10]: id_ =1
In [11]: for first, second in zip(data, data[1:]):
...: if first != second:
...: id_ += 1
...: print(f'{id_} {second}')
...:
...:
更多信息请参见 itertools 模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.