比较Pandas列中的上一个和下一个不同的值

托马斯·卡雷拉·德·苏扎

我有一个带有一列浮点数的数据框,看起来像这样(为简单起见,该示例使用整数):

  col1                    
0 10    
1 10  
2 5
3 5
4 5
5 10
6 4
7 4
8 4
9 4
10 4
11 5
12 5

我正在尝试创建一个新列,该列针对每一行比较该行中的上一个和下一个不同的值,并根据它们是否相等来分配一个布尔值。例如,在row [2]中,该值为5,前一个不同的值(不是5)在row [1]中为10,下一个不同的值在row [5]中为10。在这种情况下,新列中的值为True

然后,对于示例df,我尝试获取的输出是

  col1  col2                
0 10    NaN
1 10    False
2 5     True
3 5     True
4 5     True
5 10    False
6 4     False
7 4     False
8 4     False
9 4     False
10 4    False
11 5    False
12 5    NaN

我知道如何与特定数量的上一行和下一行进行比较,但是我不知道是否有可能进行比较以搜索“第一个不同的值”。

有什么办法吗?

非常感谢!

我想要一片T骨牛排

您可以连续使用唯一值来执行此操作,然后执行以下操作reindex

s = df['col1'] #to ease the code
#where the value is not the same as before
m = s.diff().ne(0) 
# unique value if following
su = s[m].reset_index(drop=True)
print (su)
# 0    10
# 1     5
# 2    10
# 3     4
# 4     5
# Name: col1, dtype: int64

#create columns in df to align previous and after not equal value
df['col1_after'] = su.reindex(m.cumsum().values).values
df['col1_before'] = su.reindex(m.cumsum().values-2).values
#create col2 where the two previous columns are equal
df['col2'] = df['col1_after'].eq(df['col1_before'])

你得到

print (df)
    col1  col1_after  col1_before   col2
0     10         5.0          NaN  False
1     10         5.0          NaN  False
2      5        10.0         10.0   True
3      5        10.0         10.0   True
4      5        10.0         10.0   True
5     10         4.0          5.0  False
6      4         5.0         10.0  False
7      4         5.0         10.0  False
8      4         5.0         10.0  False
9      4         5.0         10.0  False
10     4         5.0         10.0  False
11     5         NaN          4.0  False
12     5         NaN          4.0  False

请注意,您可以df.drop(['col1_after','col1_before'], axis=1)删除不必要的列,我将其留在此处以显示正在发生的情况

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列表中的Python Compare元素与上一个和下一个

来自分类Dev

分页-jQuery DataTables中的上一个和下一个大小按钮

来自分类Dev

Python-使用不同的条件查找列表中的下一个和上一个值

来自分类Dev

根据R中的上一个和下一个值设置值的条件

来自分类Dev

在js数组中查找下一个和上一个键

来自分类Dev

在R中,如果某个值不同于上一个或下一个值,如何添加TRUE / FALSE列?

来自分类Dev

FullCalendar中的“上一个”和“下一个”按钮产生“关闭”消息

来自分类Dev

根据SQL中的下一个和上一个记录排序

来自分类Dev

在Elasticsearch中按日期获取上一个和下一个文档

来自分类Dev

如何从Python中的上一个值中减去下一个值?

来自分类Dev

dplyr mutate函数可垂直计算列(当前,上一个,下一个)中的值

来自分类Dev

如何在Python枚举中优雅地找到下一个和上一个值?

来自分类Dev

如何在React中检查上一个和下一个值的差异?

来自分类Dev

如何获取数组中的下一个和上一个元素,Ruby

来自分类Dev

根据上一个和下一个值过滤熊猫数据框

来自分类Dev

获得与上一个值和下一个值的差异

来自分类Dev

Blazor-比较上一个和下一个状态

来自分类Dev

字典中上一个和下一个值的平均值

来自分类Dev

选择字符串中的上一个和下一个单词

来自分类Dev

如何使用按钮调用数组中的下一个和上一个值?

来自分类Dev

上一个和下一个菜单的菜单不同

来自分类Dev

在Jekyll中循环上一个和下一个帖子

来自分类Dev

抓取数组中的上一个和下一个元素

来自分类Dev

如何从日期变量中查找下一个和上一个日期

来自分类Dev

如何从Python中的上一个值中减去下一个值?

来自分类Dev

如何在Python枚举中优雅地找到下一个和上一个值?

来自分类Dev

如何通过查看每行中的上一个和下一个值进行分组

来自分类Dev

更改datepicker插件中的下一个和上一个按钮的位置

来自分类Dev

根据上一个和下一个值拆分和枚举 R 中的序列元素

Related 相关文章

  1. 1

    列表中的Python Compare元素与上一个和下一个

  2. 2

    分页-jQuery DataTables中的上一个和下一个大小按钮

  3. 3

    Python-使用不同的条件查找列表中的下一个和上一个值

  4. 4

    根据R中的上一个和下一个值设置值的条件

  5. 5

    在js数组中查找下一个和上一个键

  6. 6

    在R中,如果某个值不同于上一个或下一个值,如何添加TRUE / FALSE列?

  7. 7

    FullCalendar中的“上一个”和“下一个”按钮产生“关闭”消息

  8. 8

    根据SQL中的下一个和上一个记录排序

  9. 9

    在Elasticsearch中按日期获取上一个和下一个文档

  10. 10

    如何从Python中的上一个值中减去下一个值?

  11. 11

    dplyr mutate函数可垂直计算列(当前,上一个,下一个)中的值

  12. 12

    如何在Python枚举中优雅地找到下一个和上一个值?

  13. 13

    如何在React中检查上一个和下一个值的差异?

  14. 14

    如何获取数组中的下一个和上一个元素,Ruby

  15. 15

    根据上一个和下一个值过滤熊猫数据框

  16. 16

    获得与上一个值和下一个值的差异

  17. 17

    Blazor-比较上一个和下一个状态

  18. 18

    字典中上一个和下一个值的平均值

  19. 19

    选择字符串中的上一个和下一个单词

  20. 20

    如何使用按钮调用数组中的下一个和上一个值?

  21. 21

    上一个和下一个菜单的菜单不同

  22. 22

    在Jekyll中循环上一个和下一个帖子

  23. 23

    抓取数组中的上一个和下一个元素

  24. 24

    如何从日期变量中查找下一个和上一个日期

  25. 25

    如何从Python中的上一个值中减去下一个值?

  26. 26

    如何在Python枚举中优雅地找到下一个和上一个值?

  27. 27

    如何通过查看每行中的上一个和下一个值进行分组

  28. 28

    更改datepicker插件中的下一个和上一个按钮的位置

  29. 29

    根据上一个和下一个值拆分和枚举 R 中的序列元素

热门标签

归档