可以利用pandas中的shift()函数,将数据框中的某一列往上或往下平移若干个位置,并用布尔索引进行筛选,实现比较和根据条件修正的操作。例如:
import pandas as pd
df = pd.DataFrame({'A':[1,2,3,4,5], 'B':[6,7,8,9,10]})
df['A_shift'] = df['A'].shift(1) df['A_corrected'] = df.apply(lambda x: x['A']-1 if x['A']>x['A_shift'] else x['A'], axis=1)
print(df)
注:本示例中的条件是当前值比前一个值大,如果需要根据其他条件进行修正,只需在lambda函数中修改即可。