我有一个数据框df。
df = pd.DataFrame({'estimated_arrival_date': ['2018-06-30T00:00:00','2018-07-01T00:00:00','2018-07-02T00:00:00'
,'2018-07-02T00:00:00','2018-07-02T00:00:00','2018-07-01T00:00:00'],
'actual_arrival_date': ['2018-07-01T00:00:00','2018-07-01T00:00:00','2018-07-01T00:00:00',
'2018-07-01T00:00:00','2018-07-01T00:00:00','2018-07-01T00:00:00']})
我对选定的列应用了函数,创建了新列'est_arr_date'和'act_arr_date'并写入了值。然后,我计算了两个新创建的列之间的日期差,并将值写入了新列“ delta”。这是我的代码。
df.loc[:,'est_arr_date'] = df.loc[:,'estimated_arrival_date'].apply(convert_StrTime)
df.loc[:,'act_arr_date'] = df.loc[:,'actual_arrival_date'].apply(convert_StrTime)
df['delta'] = df['est_arr_date'] - df['act_arr_date']
这是辅助功能。
def convert_StrTime(str_tme):
tme = str_tme[0:10]
convert_tme = datetime.datetime.strptime(tme,"%Y-%m-%d").date()
return convert_tme
我没有得到的是这个错误。
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
有人可以向我解释吗?我以为我已经按照建议使用了.loc?