如何为DataFrame某一列的所有元素添加一个值?
一行代码解决方案
方案1(返回全新DataFrame,无警告):
df = df.assign(**{column_name: df[column_name] + adjustment})方案2(原地修改数据,明确指定操作范围):
df.loc[:, column_name] += adjustment
问题根源
你操作的df是从其他DataFrame切片得到的副本,而非独立对象。Pandas无法确定你要修改原数据还是副本,因此抛出SettingWithCopyWarning。上述两种写法要么生成全新的DataFrame,要么明确指定对整个列的所有行进行修改,彻底消除了Pandas的判定歧义。
内容的提问来源于stack exchange,提问作者Matim
相关产品推荐
相关产品推荐

