【发布时间】:2019-09-27 13:04:38
【问题描述】:
我正在尝试让 Python Pandas 根据当前行中的单元格中的值和前一行中的单元格中的值计算值。我有以下简化的数据框,我试图在其中计算当前估计的到达时间和前一架飞机的着陆时间之间的时间。我有一个航班时刻表,我将其转换为日期时间格式。
import pandas as pd
f = {'Estimated_Arrival_Time': pd.Series(['08:09', '08:39', '08:50']),
'Landing_Time': pd.Series(['08:10', '08:45', '09:10'])}
Flight_df = pd.DataFrame(f)
Flight_df.loc[:,'Estimated_Arrival_Time'] = pd.to_datetime(Flight_df.loc[:,'Estimated_Arrival_Time'],format='%H:%M')
Flight_df.loc[:,'Landing_Time'] = pd.to_datetime(Flight_df.loc[:,'Landing_Time'],format='%H:%M')
现在,我已经通过编写一个 for 循环解决了比较问题。但是,我想知道是否可以不使用 for 循环而是利用 pandas 和 dataframes 的属性来编写代码。
for i in xrange(len(Flight_df)):
if i == 0:
Flight_df.loc[i,'Inter_arrival_time'] = pd.Timedelta(0,'s')
else:
Flight_df.loc[i,'Inter_arrival_time'] = Flight_df.at[ i,'Estimated_Arrival_Time'] - Flight_df.at[(i-1),'Landing_Time']
【问题讨论】:
标签: python pandas dataframe compare