Python 比较列中的连续值

Python 比较列中的连续值,python,pandas,dataframe,Python,Pandas,Dataframe,我想重复下表中的记录(readingdate是已排序并设置为索引的数据),如果前一行中的读数(即里程表读数)较大,则对每个资产进行比较,然后打印一条消息 readingdate assetnumber reading 2004-01-29 09:53:00 51737 2006.0 2004-02-27 13:09:00 51737 6195.0 2004-03-30 08:24:00 51737 11194.0 2004-

我想重复下表中的记录(readingdate是已排序并设置为索引的数据),如果前一行中的读数(即里程表读数)较大,则对每个资产进行比较,然后打印一条消息

readingdate        assetnumber  reading
2004-01-29 09:53:00     51737    2006.0   
2004-02-27 13:09:00     51737    6195.0  
2004-03-30 08:24:00     51737    11194.0  
2004-04-29 10:15:00     51737    14806.0  
2004-05-27 12:15:00     51737    18273.0   
2004-06-24 10:43:00     51737    21744.0   
2004-08-03 07:31:00     51737    24591.0   
2004-08-31 14:15:00     51737    27219.0   
2004-09-28 09:33:00     51737    29845.0  
我尝试了以下代码,但显然是错误的。我想知道如何使用
iterrows()
或任何其他方法来实现这一点

for i , row in df1.iterrows():
    if row['reading'] > next(row['reading']):
        print("Wrong Odometer")



将其打印到输出。当然,我可以改变这一点,但我的主要挑战是如何比较这些值参见
df1['reading']>df1['reading']。shift(1)
?我试过了。但是我得到了序列的真值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。@jax。评论说“看”,而不是“用”。此时,错误消息应该是不言自明的。请将其打印到输出中。当然,我可以改变这一点,但我的主要挑战是如何比较这些值参见
df1['reading']>df1['reading']。shift(1)
?我试过了。但是我得到了序列的真值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。@jax。评论说“看”,而不是“用”。“在这一点上,错误信息应该是不言自明的。”物理学家说,当然,没有问题。是否有一个好的文档来解释移位和任何函数的链接以及所有这些。我看了熊猫参考资料,但没有足够的解释。第一行会发生什么?@jax我不知道文档中有任何来源,但如果你想知道我是如何学习的,这是通过实验和向更有经验的熊猫用户学习来回答问题的。@jax我不知道这会有多大帮助,但这是文档站点中关于熊猫的最好的可用文档:@MadPhysicast当然,没有问题。非常好。是否有一个好的文档来解释移位和任何函数的链接以及所有这些。我看了熊猫参考资料,但没有足够的解释。第一行会发生什么?@jax我不知道文档中有任何来源,但如果你想知道我是如何学习的,这是通过实验和向更有经验的pandas用户学习来回答问题的。@jax我不知道这会有多大帮助,但这是doc网站上关于pandas的最好的可用文档:
if (df['reading'].diff(-1) > 0).any():
    print('Wrong Odometer')
if (df['reading'] > df['reading'].shift(-1)).any():
    print('Wrong Odometer')