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

从切片更新多个列时,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()方法文档

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

相关·内容

pandas数据清洗,排序,索引设置,数据选取

df.fillna({1:0,2:0.5}) #对第一列nan值赋0,第二列赋值0.5 df.fillna(method='ffill') #在列方向上以前一个值作为值赋给NaN 值替换replace(...取排名的平均值 #min 值相等时,取排名最小值 #max 值相等时,取排名最大值 #first值相等时,按原始数据出现顺序排名 ---- 索引设置 reindex() 更新index或者columns..., 默认:更新index,返回一个新的DataFrame # 返回一个新的DataFrame,更新index,原来的index会被替代消失 # 如果dataframe中某个索引值不存在,会自动补上NaN...(['race','sex'], inplace = True) # 默认情况下,设置成索引的列会从DataFrame中移除 # drop=False将其保留下来 adult.set_index([...的所有行组成dataframe query 多个where整合切片,&:于,|:或  df.query(" A>5.0 & (B>3.5 | C<1.0) ")  loc :根据名称Label切片

3.3K20

Pandas部分应掌握的重要知识点

索引器中括号内行列下标的位置上都允许使用切片和花式索引,下例中行使用切片,列使用花式索引。 注意:下面的3:5表示下标为3和4的两行,[0,2]表示下标为0和2的两列。...team.iloc[3:5,[0,2]] (2)当只按行下标查看多个连续的行数据时,可以采用以下简化写法(不使用索引器): team[10:13] 注意: ① 该简化方法等价于team.iloc[10...索引器中括号内行列下标的位置上都允许使用切片和花式索引,下例中行使用切片,列使用花式索引。...(2)当只涉及到按列标签查看数据时,可以使用下列简化方法(不使用索引器): print(team['team'].unique()) #按列标签选择一列 team[['name','Q1']].head...): df.fillna(method='ffill') (3)从后向前填充(back-fill): df.fillna(method='bfill') (4)插值法填充 下面的示例:线性插值、沿着水平方向从前向后填充

4800
  • Python数据分析笔记——Numpy、Pandas库

    一维数组的索引 多维数组的索引 (2)切片索引 一维数组的切片索引(与Python列表的切片索引一样) 多维数组的切片索引 (3)花式索引 元素索引和切片索引都是仅局限于连续区域的值,而花式索引可以选取特定区域的值...DataFrame既有行索引也有列索引,其中的数据是以一个或多个二维块存放的,而不是列表、字典或别的一维数据结构。...3、算数运算和数据对齐 (1)Series 与Series之间的运算 将不同索引的对象进行算数运算,在将对象进行相加时,如果存在时,则结果的索引就是该索引的并集,而结果的对象为空。...df.fillna(0)——缺失值都将被0填充。 也可以给fillna函数一个字典,就可以实现对不同的列填充不同的值。...Df.fillna({1:0.5,3:-1})——1列的缺失值用0.5填充,3列的缺失值用-1填充。(列从0开始计数) 6、汇总和计算描述统计 就是针对数组进行常用的数学和统计运算。

    6.4K80

    pandas操作excel全总结

    index_col ,指定索引对应的列为数据框的行标签,默认 Pandas 会从 0、1、2、3 做自然排序分配给各条记录。...「iloc」 通过行号索引行数据,行号从0开始,逐次加1。...「注意」 当使用显式索引(即data['a':'c'])作切片时,结果「包含」最后一个索引;而当使用隐式索引(即 data[0:2]) 作切片时,结果「不包含」最后一个索引。...loc属性,表示取值和切片都是显式索引 iloc属性,表示取值和切片都是隐式索引 Pandas 读取 csv文件的语法格式和读取excel文件是相似的,大家可以对照读取excel的方法学习。...1]) # 删除行 df.drop_duplicates() # 删除重复值 df.fillna('missing')# 使用字符串填补 df.replace('old', 'new') # old替换成

    22K44

    Pandas50个高级操作,必读!

    1、逻辑运算 # Q1成绩大于36df.Q1> 36# Q1成绩不小于60分,并且是C组成员~(df.Q1< 60) & (df['team'] == 'C') 2、逻辑筛选数据 切片([ ])、.loc...method='ffill') # 将空值都修改为其前一个值values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}df.fillna(value=values) # 为各列填充不同的值...df.rename_axis("limbs",axis="columns") # 指定行索引 # 索引为多层索引时可以将type修改为classdf.rename_axis(index={'type':...(how='all') # 行或列全没值才删除df.dropna(thresh=2) # 至少有两个空值时才删除df.dropna(inplace=True) # 删除并使替换生效 05、高级过滤 介绍几个非常好用的复杂数据处理的数据过滤输出方法...df.agg('max')# 将所有列聚合产生sum和min两行df.agg(['sum', 'min'])# 序列多个聚合df.agg({'Q1' : ['sum', 'min'], 'Q2' : [

    1.5K30

    Pandas数据结构:Series与DataFrame

    Series 的索引默认是从 0 开始的整数索引,也可以自定义索引。...# 删除缺失值df.dropna(inplace=True)# 填充缺失值df.fillna(value=0, inplace=True)2.2 数据类型转换问题描述有时需要将某一列的数据类型从一种类型转换为另一种类型...# 将 'Age' 列从字符串转换为整数df['Age'] = df['Age'].astype(int)2.3 重复数据问题描述数据集中可能存在重复的记录,这会影响分析结果的准确性。...常见报错及解决方法3.1 KeyError报错描述当尝试访问不存在的列时,会引发 KeyError。解决方法确保列名正确无误。...'Age'] + 'years'# 正确示例df['Age'] = df['Age'].astype(str) + ' years'3.3 SettingWithCopyWarning报错描述当对一个切片进行赋值操作时

    16410

    Python中处理缺失值的2种方法

    查找到了缺失值,下一步便是对这些缺失值进行处理,今天同样会分享多个方法! 删除-dropna 第一种处理缺失值的方法就是删除,dropna()方法的参数如下所示。...subset:参数类型为列表,表示删除时只考虑的索引或列名。 inplace:是否在原数据上操作。...在交互式环境中输入如下命令: df.dropna(axis=0) 输出: how参数中,any表示一行/列有任意元素为空时即丢弃,all表示一行/列所有值都为空时才丢弃。...df.fillna(axis=0, method="ffill") 输出: 参数limit表示填充执行的次数,这里我们赋值为1,则代表仅按行填充1次。...df.fillna(axis=0, method="ffill", limit=1) 输出: 此外,还有一些不太常用的方法。

    2.1K10

    6个提升效率的pandas小技巧

    从剪切板中创建DataFrame pandas中的read_clipboard()方法非常神奇,可以把剪切板中的数据变成dataframe格式,也就是说直接在excel中复制表格,可以快速转化为dataframe...=len(df)*0.9, axis=1) 用一个标量替换缺失值: df.fillna(value=10) 用上一行对应位置的值替换缺失值: df.fillna(axis=0, method='ffill...') 用前一列对应位置的值替换缺失值: df.fillna(axis=1, method='ffill') 用下一行对应位置的值替换缺失值: df.fillna(axis=0, method='bfill...') 用后一列对应位置的值替换缺失值: df.fillna(axis=1, method='bfill') 使用某一列的平均值替换缺失值: df['Age'].fillna(value=df['Age...从多个文件中构建一个DataFrame 有时候数据集可能分布在多个excel或者csv文件中,但需要把它读取到一个DataFrame中,这样的需求该如何实现?

    2.4K20

    6个提升效率的pandas小技巧

    从剪切板中创建DataFrame pandas中的read_clipboard()方法非常神奇,可以把剪切板中的数据变成dataframe格式,也就是说直接在excel中复制表格,可以快速转化为dataframe...=len(df)*0.9, axis=1) 用一个标量替换缺失值: df.fillna(value=10) 用上一行对应位置的值替换缺失值: df.fillna(axis=0, method='ffill...') 用前一列对应位置的值替换缺失值: df.fillna(axis=1, method='ffill') 用下一行对应位置的值替换缺失值: df.fillna(axis=0, method='bfill...') 用后一列对应位置的值替换缺失值: df.fillna(axis=1, method='bfill') 使用某一列的平均值替换缺失值: df['Age'].fillna(value=df['Age...从多个文件中构建一个DataFrame 有时候数据集可能分布在多个excel或者csv文件中,但需要把它读取到一个DataFrame中,这样的需求该如何实现?

    2.9K20

    Python 数据处理

    b**2 判断:a<35,输出True或False的数组 矩阵乘:np.dot(A,B) 或 A.dot(B) 其他:+=、-+、sin、cos、exp Numpy索引 数组索引方式:A[1, 1] 切片...5,0:2] 混合选择:df.ix[:3,[‘A’,’C’]] 条件判断选择:df[df.A > 0] Pandas处理丢失数据 删除丢失数据的行:df.dropna(how=’any’) 填充丢失数据:df.fillna...df.append(s, ignore_index=True):添加数据 Pandas导入导出 df.to_csv(‘foo.csv’):保存到csv文件 pd.read_csv(‘foo.csv’):从csv...sheet_name=’Sheet1’):保存到excel文件 pd.read_excel(‘foo.xlsx’, ‘Sheet1’, index_col=None, na_values=[‘NA’]):从excel...data.plot() plt.show() 作 者:ChanghuiN 原文链接:http://www.hchstudio.cn/article/2018/ae78/ 版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接

    1.5K20

    快速提升效率的6个pandas使用小技巧

    从剪切板中创建DataFrame pandas中的read_clipboard()方法非常神奇,可以把剪切板中的数据变成dataframe格式,也就是说直接在excel中复制表格,可以快速转化为dataframe...=len(df)*0.9, axis=1) 用一个标量替换缺失值: df.fillna(value=10) 用上一行对应位置的值替换缺失值: df.fillna(axis=0, method='ffill...') 用前一列对应位置的值替换缺失值: df.fillna(axis=1, method='ffill') 用下一行对应位置的值替换缺失值: df.fillna(axis=0, method='bfill...') 用后一列对应位置的值替换缺失值: df.fillna(axis=1, method='bfill') 使用某一列的平均值替换缺失值: df['Age'].fillna(value=df['Age...从多个文件中构建一个DataFrame 有时候数据集可能分布在多个excel或者csv文件中,但需要把它读取到一个DataFrame中,这样的需求该如何实现?

    3.3K10

    Pandas入门操作

    手动穿件数据集 df = pd.DataFrame([ [1001,'Mike',20], [1002,'Bob',21], [1003,'Alice',22], ]) # 从磁盘导入数据集...切片 # 获取单列 df['首付'] # 获取多列 df[['首付','建筑面积']] # 获取指定几行指定几列 df.loc[1:7,['单价','建筑面积']] 筛选 df[df['首付']>250...axis=0表示index行,axis=1表示columns列,默认为0 # how:"all"表示这一行或列中的元素全部缺失(为nan)才删除这一行或列,"any"表示这一行或列中只要有元素缺失,就删除这一行或列..., thresh=None, subset=None, inplace=False) 填补缺失行 # 函数作用:填充缺失值 # # value:需要用什么值去填充缺失值 # axis:确定填充维度,从行开始或是从列开始...df=df.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

    84920

    pandas数据分析输出excel产生文本形式存储的百分比数据,如何处理?

    每次操作只能选中一列数据,如果有多列数据,就要分别操作多次。没办法偷懒。 ? 该方法看上去有点粗笨,但在紧急情况下,你能立即用,马上解决问题。...如果单个文件中此类“文本形式存储的数据”较多,或你需要频繁输出该类文件,那么当然更好的做法是:直接优化脚本,从根源上解决问题。...count']/df['count'].values[0] df['opp_rate'] = (df['count'].shift(axis=0,periods=-1))/df['count'] df = df.fillna...但实际情况是,数据统计分析的输出,通常有多个子表构成,所以还是得用回 to_excel() 吖! 2、多个子表,束手无措,作出取舍 我搜了非常多网页,尚未找到直接解决问题的方法。...希望有天能找到答案,更新本文!笔记先落笔至此吧! btw,您有解决办法吗?当需要把dataframe数据输出到excel并有多个子表时,如何能让百分数正常显示,而无任何异常提示呢?

    3.1K10
    领券