减去同一数据帧的两列
Subtraction of two columns of the same dataframe
我想对同一数据帧的两列进行减法运算,col1 行应位于 [i+1] 位置,col2 应位于 [I] 位置。 (col 1 是 col2 的继承者)。
我可以分享的部分代码,最后发布return:
def calcul_TAT2(df):
i=0
for i in (range(len(df))):
if type(df['actual_gate_arrival_time']) is float or type(df['actual_gate_departure_time']) is float:
return 'NaN'
if df['actual_gate_arrival_time'].lower() =='nan' or df['actual_gate_departure_time'].lower()=='nan':
return 'NaN'
else :
actual_gate_arrival_time= (datetime(int(df['actual_gate_arrival_time'][6:10]),int(df['actual_gate_arrival_time'][3:5]),int(df['actual_gate_arrival_time'][:2]),int(df['actual_gate_arrival_time'][11:13]),int(df['actual_gate_arrival_time'][14:])))
actual_gate_departure_time= (datetime(int(df['actual_gate_departure_time'][6:10]),int(df['actual_gate_departure_time'][3:5]),int(df['actual_gate_departure_time'][:2]),int(df['actual_gate_departure_time'][11:13]),int(df['actual_gate_departure_time'][14:])))
return df.loc[i+1,'actual_gate_departure_time']-df.loc[i,'actual_gate_arrival_time']
DHA['TAT']=DHA.apply(calcul_TAT2, axis=1)
TypeError: ("cannot do label indexing on <class 'pandas.core.indexes.base.Index'> with these indexers [1] of <class 'int'>", 'occurred at index 593484569.0')
尝试df['col3'] = df['col1'].shift(-1) - df['col2']
我想对同一数据帧的两列进行减法运算,col1 行应位于 [i+1] 位置,col2 应位于 [I] 位置。 (col 1 是 col2 的继承者)。
我可以分享的部分代码,最后发布return:
def calcul_TAT2(df):
i=0
for i in (range(len(df))):
if type(df['actual_gate_arrival_time']) is float or type(df['actual_gate_departure_time']) is float:
return 'NaN'
if df['actual_gate_arrival_time'].lower() =='nan' or df['actual_gate_departure_time'].lower()=='nan':
return 'NaN'
else :
actual_gate_arrival_time= (datetime(int(df['actual_gate_arrival_time'][6:10]),int(df['actual_gate_arrival_time'][3:5]),int(df['actual_gate_arrival_time'][:2]),int(df['actual_gate_arrival_time'][11:13]),int(df['actual_gate_arrival_time'][14:])))
actual_gate_departure_time= (datetime(int(df['actual_gate_departure_time'][6:10]),int(df['actual_gate_departure_time'][3:5]),int(df['actual_gate_departure_time'][:2]),int(df['actual_gate_departure_time'][11:13]),int(df['actual_gate_departure_time'][14:])))
return df.loc[i+1,'actual_gate_departure_time']-df.loc[i,'actual_gate_arrival_time']
DHA['TAT']=DHA.apply(calcul_TAT2, axis=1)
TypeError: ("cannot do label indexing on <class 'pandas.core.indexes.base.Index'> with these indexers [1] of <class 'int'>", 'occurred at index 593484569.0')
尝试df['col3'] = df['col1'].shift(-1) - df['col2']