我想迭代虽然记录在下表中显示(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")
答案 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')