尽管使用.loc在Pandas中设置带有复制警告

时间:2019-02-20 12:35:59

标签: pandas

我有一个数据框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?

0 个答案:

没有答案