比较列

时间:2017-09-19 19:02:09

标签: pandas dataframe

我想迭代虽然记录在下表中显示(readdate是排序并设置为索引),并且对于每个资产比较,如果读数(即里程表读数)在前一行中更大则打印一条消息。

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  

我尝试了以下代码,但显然它错了。我很想知道如何使用itterrows()或任何其他方法来做到这一点。

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

1 个答案:

答案 0 :(得分:6)

Series.diff

if (df['reading'].diff(-1) > 0).any():
    print('Wrong Odometer')

Series.shift

if (df['reading'] > df['reading'].shift(-1)).any():
    print('Wrong Odometer')