Pandas对指定location分组的temp列插值出现SettingWithCopyWarning如何解决
问题根因
你使用的df[df['location'] == 'a']['temp']属于链式索引操作,pandas执行该操作时会返回原DataFrame的临时副本,对副本赋值不会作用到原数据,同时触发SettingWithCopyWarning警告。
正确实现方案
使用.loc同时指定行筛选条件和目标列,直接操作原DataFrame完成赋值:
df.loc[df['location'] == 'a', 'temp'] = df.loc[df['location'] == 'a', 'temp'].interpolate()
效果说明
执行上述代码后,仅location为a的行中temp列的缺失值会被线性插值填充(示例中索引为2的行temp会被填充为12.3),其余位置的缺失值不会被改动,完全符合需求。
内容的提问来源于stack exchange,提问作者Muhammad Ghazy
相关产品推荐
相关产品推荐

