比较Pandas DataFrame中的上一行值

jth359:
import pandas as pd
data={'col1':[1,3,3,1,2,3,2,2]}
df=pd.DataFrame(data,columns=['col1'])
print df


         col1  
    0     1          
    1     3          
    2     3          
    3     1          
    4     2          
    5     3          
    6     2          
    7     2          

我有以下Pandas DataFrame,我想创建另一列来比较col1的上一行,以查看它们是否相等。最好的方法是什么?就像下面的DataFrame。谢谢

    col1  match  
0     1   False     
1     3   False     
2     3   True     
3     1   False     
4     2   False     
5     3   False     
6     2   False     
7     2   True     
耶斯雷尔:

您需要eq使用shift

df['match'] = df.col1.eq(df.col1.shift())
print (df)
   col1  match
0     1  False
1     3  False
2     3   True
3     1  False
4     2  False
5     3  False
6     2  False
7     2   True

或改为eq使用==,但是在大型DataFrame中,它会稍微慢一些:

df['match'] = df.col1 == df.col1.shift()
print (df)
   col1  match
0     1  False
1     3  False
2     3   True
3     1  False
4     2  False
5     3  False
6     2  False
7     2   True

时间

import pandas as pd
data={'col1':[1,3,3,1,2,3,2,2]}
df=pd.DataFrame(data,columns=['col1'])
print (df)
#[80000 rows x 1 columns]
df = pd.concat([df]*10000).reset_index(drop=True)

df['match'] = df.col1 == df.col1.shift()
df['match1'] = df.col1.eq(df.col1.shift())
print (df)

In [208]: %timeit df.col1.eq(df.col1.shift())
The slowest run took 4.83 times longer than the fastest. This could mean that an intermediate result is being cached.
1000 loops, best of 3: 933 µs per loop

In [209]: %timeit df.col1 == df.col1.shift()
1000 loops, best of 3: 1 ms per loop

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

比较Pandas Dataframe的列名

MySQL比较值与上一行

比较当前行值和上一行值

比较Spark中当前行和上一行的值

Pandas DataFrame-删除特定列中与上一行具有相同值的行

比较Pandas数据框中具有上百万行的行和上一行的最快方法

计算Pandas DataFrame中每一行的频率

平均值函数,不包括Pandas DataFrame中每一行的值

获取pandas DataFrame中某一行的最大值的列名称

与列表的Pandas DataFrame列的比较

Python Pandas Dataframe年度比较

与pandas DataFrame中上一行的更改百分比进行比较

在pandas DataFrame中查找最接近值的第一行索引

如何在最后一行中以零值删除Pandas DataFrame列

比较Pandas数据框中一行中的列值

计算Pandas DataFrame中每一行的最小值

从Pandas列中的当前行值中减去上一行的值

sql代码比较系列中的上一行

Pandas数据框将列与一个值进行比较,然后将这一行和上一行放入另一数据框

如何将Pandas DataFrame中的值与上一行和上一列中的值进行比较?

Python Pandas Dataframe存储下一行值

如何在Pandas DataFrame中获得最小值不为零的第一行索引?

一旦从pandas DataFrame中采样了一行,如何获取一个单元格的值?

如何根据上一行信息更新Pandas DataFrame

Pandas DataFrame行明智比较

Excel在一行中的两列中比较值

如何比较CSV中的上一行与上一行?

比较mysql中的上一行

比较当前行与 SQL Server 中的上一行

TOP 榜单

热门标签

归档