python - 有没有办法重写函数 data1.groupby(level=0)['total_tax'],apply(lambda x: x.shift()) 以避免设置复制警告
问题描述
我正在处理一个大数据集,当我执行这个功能时:
data1['total_t_1'] = data1.groupby(level=0)['total_tax'].apply(lambda x: x.shift())
我收到此错误:SettingWithCopyWarning: A value is trying to be set on a copy of a slice from DataFrame。尝试使用 .loc [row_indexer, col_indexer] = value 代替。
我认识到错误出在这部分:apply(lambda x: x.shift())
有人可以建议我如何避免这个问题吗?
解决方案
它只是警告您data1
来自另一个 DataFrame 的一部分,因此您不应该期望原始 DataFrame 会在您更改data1
. 如果您想让警告消失,请先设置data1 = data1.copy()
。请参阅 pault 评论中的链接(如何处理 Pandas 中的 SettingWithCopyWarning?)以获取更多信息。
推荐阅读
- java - JBOSS Server 卡在启动状态
- fonts - 背面 XeLatex:未找到 Comic Sans Italic
- c++ - FileInformation - 提取文件重命名详细信息
- javascript - + 运算符覆盖而不是连接 Javascript 中的字符串
- c++ - 具有自定义 value_type 的 C++ 映射
- jquery - jquery多条件验证
- javascript - HTML角度文件中的双花括号没有通过javascript显示数据,为什么?
- react-native-android - React Native:单击按钮下载带有 rn-fetch-blob 的 pdf 文件
- typescript - 基于打字稿中的构造函数参数重载类属性
- python - 如何在 logging.conf 文件中将 TimedRotatingFileHandler 更改为模式“w”