我知道链接 get/set 的含义以及它可能意味着我正在处理副本这一事实。如果我使用loc()
,我仍然会收到警告(没有 loc 部分,但仍然是警告)。
我有一个带有“A”列的 DF,它是一个日期,但带有一个类型字符串。
我将字符串对象转换为日期(在所有行):
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 上创建新列,以免尝试同时获取和设置相同的列。警告仍然存在。
这样做的正确方法是什么?我想设置原始数据框。