[问题解决]pandas DataFrame中经常出现SettingWithCopyWarning

Posted everfight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[问题解决]pandas DataFrame中经常出现SettingWithCopyWarning相关的知识,希望对你有一定的参考价值。

先从原dataframe取出一个子dataframe,然后再对其中的元素赋值,例如

s = d[d['col_1'] == 0]
s.loc[:, 'col_2'] = 1

就会出现报错:
SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
解决方法:

  1. 使用推荐的 .loc[row_indexer,col_indexer] = value
  2. 如果不知道,就先copy,再赋值。
s = d[d['col_1'] == 0].copy()
s.loc[:, 'col_2'] = 1

以上是关于[问题解决]pandas DataFrame中经常出现SettingWithCopyWarning的主要内容,如果未能解决你的问题,请参考以下文章

Pandas DataFrame.hist Seaborn 等价物

解决pandas中打印DataFrame行列显示不全的问题

解决问题:使用pandas中DataFrame如何使用条件选择某行

Python学习解决pandas中打印DataFrame行列显示不全的问题

PANDAS 中类似 SQL 的窗口函数:Python Pandas Dataframe 中的行编号

漂亮地打印整个 Pandas 系列/DataFrame