gpt4 book ai didi

python - 检查一行的值是否连续

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:08 25 4
gpt4 key购买 nike

我有一个这样的 df:

     1   2   3   4   5   6
0 5 10 12 35 70 80
1 10 11 23 40 42 47
2 5 26 27 38 60 65

每行中的所有值都不同且顺序递增。

如果至少有 2 个连续数字,我想用 10 创建一个新列。例如,第二行和第三行有 1011,以及 2627。有没有比使用迭代器更 pythonic 的方式?谢谢

最佳答案

使用DataFrame.diff对于每行的差异,通过 1 进行比较,检查每行是否至少有一个 True 并最后转换为整数:

df['check'] = df.diff(axis=1).eq(1).any(axis=1).astype(int)
print (df)
1 2 3 4 5 6 check
0 5 10 12 35 70 80 0
1 10 11 23 40 42 47 1
2 5 26 27 38 60 65 1

为了提高性能,使用 numpy:

arr = df.values
df['check'] = np.any(((arr[:, 1:] - arr[:, :-1]) == 1), axis=1).astype(int)

关于python - 检查一行的值是否连续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54076319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com