繁体   English   中英

有没有办法根据现有列的当前和前一行值在每行的新列中分配增量值的数量?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM