首页
学习
活动
专区
工具
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()方法文档

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

相关·内容

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.2K20

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替换成

21.2K43

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

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) 输出: 此外,还有一些不太常用的方法。

2K10

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.8K20

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)

83420

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

Python代码实操:详解数据清洗

': 1.1, 'col4': 1.2}) # 用不同值替换不同的缺失值 nan_result_pd6 = df.fillna(df.mean()['col2':'col4']) # 用各自的平均数替换缺失值...更有效的是,如果数据中的缺失值太多而无法通过列表形式穷举,replace 还支持正则表达式的写法。 当中的数据全部为空值,任何替换方法都将失效,任何基于中位数、众数和均值的策略都将失效。...当中含有极大值或极小值的 inf 或 -inf ,会使得 mean() 这种方法失效,因为这种情况下将无法计算出均值。...subset:要判断重复值的,可以指定特定多个。默认使用全部。...在电子商务、零售、银行、保险等多个行业拥有丰富的数据项目工作经验。 本文摘编自《Python数据分析与数据化运营》(第2版),经出版方授权发布。

4.9K20
领券