什么';在一个熊猫数据帧中迭代两个连续行的python方法是什么?

什么';在一个熊猫数据帧中迭代两个连续行的python方法是什么?,python,pandas,Python,Pandas,我想迭代数据帧记录,如下伪代码所示: for index, row in records.iterrows(): process(row[index-1]['Expected Time'], row[index]['Actual Time']) current_df = records[1:] previous_df = records[:-1] for current_record, previous_record in (current_df, previous_df):

我想迭代数据帧记录,如下伪代码所示:

for index, row in records.iterrows():
    process(row[index-1]['Expected Time'], row[index]['Actual Time'])
current_df = records[1:]
previous_df = records[:-1]

for current_record, previous_record in (current_df, previous_df):
    process(previous_record['Expected Time'], current_record['Actual Time'])
其中,
process
是一个函数,其逻辑是比较当前记录的“实际时间”和前一行的“预期时间”

上面的代码不起作用,因为row as tuple不允许通过带有空格的字符串进行访问。相反,我必须为那些名称中包含空格的列/字段使用索引。 这是一种硬代码,不易维护

我想知道是否有更好的解决办法

或者,是否可以迭代一对数据帧,如以下伪代码所示:

for index, row in records.iterrows():
    process(row[index-1]['Expected Time'], row[index]['Actual Time'])
current_df = records[1:]
previous_df = records[:-1]

for current_record, previous_record in (current_df, previous_df):
    process(previous_record['Expected Time'], current_record['Actual Time'])
使用相同的数据帧,一个删除了第一行,另一个删除了最后一行。它在同一索引中比较当前行和前一行


如何在Python中实现上述功能?

这应该可以做到:

records[“prev”]=记录[“预期时间”]。班次(1)
记录[[“上一个”,“实际时间”]]。应用(λX:进程(X[“上一个”],X[“实际时间”]),轴=1)

你在找什么?正是我要找的。谢谢根据流程函数的外观,您可以加快速度。看看numpy.vectorize。它可以比应用快得多。