首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从切片更新多个列时,df.fillna()不起作用

从切片更新多个列时,df.fillna()不起作用的原因是因为df.fillna()方法只能对DataFrame或Series对象进行填充操作,而切片操作返回的是一个视图,不是一个新的DataFrame或Series对象。

当我们使用切片操作更新多个列时,可以使用DataFrame的.loc或.iloc属性来选择需要更新的列,并使用fillna()方法对选定的列进行填充。例如:

代码语言:txt
复制
import pandas as pd

# 创建一个示例DataFrame
data = {'A': [1, 2, None, 4, 5],
        'B': [None, 2, 3, None, 5],
        'C': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# 使用.loc属性选择需要更新的列,并使用fillna()方法填充缺失值
df.loc[:, ['A', 'B']] = df.loc[:, ['A', 'B']].fillna(0)

print(df)

输出结果为:

代码语言:txt
复制
     A    B  C
0  1.0  0.0  1
1  2.0  2.0  2
2  0.0  3.0  3
3  4.0  0.0  4
4  5.0  5.0  5

在上述示例中,我们使用.loc属性选择了列'A'和列'B',并使用fillna(0)方法将缺失值填充为0。

需要注意的是,切片操作返回的是原始DataFrame的一个视图,因此对切片进行填充操作不会改变原始DataFrame的值。如果需要将填充后的结果保存到原始DataFrame中,可以使用赋值操作符(=)将填充后的切片赋值给原始DataFrame的相应位置。

关于pandas的fillna()方法的更多信息,可以参考腾讯云文档中的介绍:fillna()方法文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券