Pandas中带有CopyWarning的不可复制设置



我遇到了一个奇怪的情况,SettingWithCopyWarning没有按照我预期的方式运行。

我有一个数据框架,里面有很多列和超过100000行的Facebook公共页面发布的帖子数据。我感兴趣的五列是"页面名称"、"创建"、"消息"、"图像文本"、"链接文本"one_answers"描述"。

首先,我使用以下两行代码提取我需要的列(让我们称之为第1行和第2行(:

reqd_cols = ['Page Name', 'Created', 'Message', 'Link Text', 'Image Text', 'Description']
reqd_dat = raw_dat[reqd_cols]

Created列具有创建帖子的时间戳(str((例如2021-02-08 20:06:19 EST(。我的目标是从该列中提取Date,并将其存储在名为"Date"的新列中;日期";

我可以提取日期并使用创建列表

reqd_dat.loc[:,'Created'].str.split().str[0].tolist()

然而,当我做(第3行(

reqd_dat.loc[:,'Date'] = reqd_dat.loc[:,'Created'].str.split().str[0].tolist()

我得了可怕的SettingWithCopyWarning。然而,在得到警告之后,当我重新运行第1行和第2行,从而有效地重新创建reqd_dat时,第3行不再抛出该警告。

我错过了什么?

看起来您的reqd_datraw_dat的视图。我会尝试将第2行更改为:

reqd_dat = raw_dat[reqd_cols].copy()

最新更新