我知道链接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上创建新列,以免尝试同时获取和设置相同的列。警告仍然存在。
正确的方法是什么?我想设置原始数据框。