Python中如何将转换后的变量添加到DataFrame,解决SettingWithCopyWarning
Pandas SettingWithCopyWarning 问题解决方法
出现该警告的核心原因是你当前操作的race_df是从其他DataFrame切片得到的副本,而非独立的DataFrame对象,pandas无法确认你要修改的是副本还是原始DataFrame,因此抛出提醒。
解决步骤
- 如果需要保留原
race_df不变,生成包含转换后列的新DataFrame,执行以下代码:
# 基于原df生成独立副本,避免改动原数据 new_race_df = race_df.copy() # 用.loc完成列赋值,注意列名要和原列名完全一致,不要额外加空格 new_race_df.loc[:, 'Black or African American'] = new_race_df['Black or African American'].str.rstrip('%').astype(float) / 100
- 如果可以直接修改原
race_df,执行以下代码:
# 先把当前切片副本转为独立DataFrame race_df = race_df.copy() # 赋值转换后的百分比数值 race_df.loc[:, 'Black or African American'] = race_df['Black or African American'].str.rstrip('%').astype(float) / 100
额外注意事项
你之前的赋值代码里列名多输入了一个空格,写成了Black or African American,会导致匹配不到原列的问题,注意要和原列名完全一致。
内容的提问来源于stack exchange,提问作者mlboy
相关产品推荐
相关产品推荐

