设置数据框列将返回持久的“试图在切片副本上设置值”警告

时间:2018-12-20 15:44:53

标签: python pandas loc

我知道链接get / set的含义以及它可能意味着我正在复制的事实。如果使用loc(),我仍然会收到警告(没有loc部分,但仍然是警告)。

我有一个DF列,其中“ A”列是一个日期,但带有字符串类型。

我正在将字符串对象转换为日期(在所有行中):

X['A'] = pd.to_datetime(X['A'])

然后我将其转换为以特定方式格式化的字符串。我知道我要绕道而行,但我想尝试一下:

X['A'] = X['user_created_date'].apply(lambda x: x.strftime("%H %w %d %m %y") if not pd.isnull(x) else '')

然后我将该列相应地拆分为多个列:

X[['hour','day', 'dateofm', 'month', 'year']] = X['A'].str.split(' ', expand=True)

所有这些似乎都有效,但是我得到了"A value is trying to be set on a copy of a slice from a DataFrame. Try to use loc..." warning three times.

我还尝试在分配的LH上创建新列,以免尝试同时获取和设置相同的列。警告仍然存在。

正确的方法是什么?我想设置原始数据框。

0 个答案:

没有答案