如何在GeoPandas中消除SettingWithCopyWarning警告(非copy_on_write模式)
解决GeoPandas的SettingWithCopyWarning警告(无需开启copy_on_write)
这个警告的核心问题是你当前使用的df其实是另一个DataFrame的切片副本,并非独立的原始对象——哪怕改用.loc语法赋值,pandas依然能检测到你在修改副本而非原数据,所以警告会持续出现。
解决方法:
- 先将df转为独立副本:在赋值操作前,显式创建
df的独立副本,切断它和原DataFrame的关联:# 先生成独立副本 df = df.copy() # 再执行赋值操作 df.loc[:, 'b'] = df.loc[:, 'a'].str.split("_").str.get(0) - 使用assign方法创建新列:
assign会直接返回包含新列的新DataFrame,全程不修改原对象,也能避开警告:df = df.assign(b=df['a'].str.split("_").str.get(0))
验证原因(可选):
你可以先检查df是否为副本:
print(df._is_copy)
如果输出指向某个原DataFrame,就说明df确实是切片生成的副本,这正是警告的根源。
内容的提问来源于stack exchange,提问作者shuoren fei
相关产品推荐
相关产品推荐

