执行DataFrame列类型转换时出现.loc警告,如何消除?
解决pandas赋值警告问题
这个警告属于pandas的SettingWithCopyWarning,触发原因是直接通过列索引赋值时,pandas无法确定你是在修改原DataFrame还是它的切片副本。以下是几种消除警告的方法:
- 使用
.loc明确指定全行列进行赋值,这是pandas官方推荐的方式:df_under.loc[:, 'Work Ratio'] = df_under['Work Ratio'].astype(float) - 确认
df_under是独立的DataFrame而非切片副本,提前创建副本:df_under = df_under.copy() df_under['Work Ratio'] = df_under['Work Ratio'].astype(float) - 临时关闭该类型警告(仅在你完全确认操作无风险时使用):
import pandas as pd pd.options.mode.chained_assignment = None
内容的提问来源于stack exchange,提问作者Sebastian Naitsabes
相关产品推荐
相关产品推荐

