如何在pandas DataFrame中为指定行添加元素且不新增整行
pandas指定单元格空值替换方案
你不需要新增整行,直接定位到NaN所在的单元格赋值即可,不会改动DataFrame的原有结构和其他数据。
方法1:精准定位单个单元格赋值(适合明确知道空值位置的场景)
首先构造初始测试数据:
import pandas as pd import numpy as np df = pd.DataFrame({ 'first': [100, 212], 'second': [2, np.nan], 'third': [212, 213] })
用.loc按行索引、列名定位目标单元格,直接赋值目标值:
# 定位行索引为1、列名为second的空值单元格,赋值23 df.loc[1, 'second'] = 23
执行后输出结果和预期完全一致:
first second third 0 100 2.0 212 1 212 23.0 213
如果需要把second列的浮点类型转回整数,追加执行一行代码即可:
df['second'] = df['second'].astype(int)
方法2:批量替换指定列的空值(适合列内有多个NaN需要统一替换的场景)
如果不需要逐一定位空值位置,要把某列所有NaN都替换为目标值,可以直接用fillna方法:
df['second'] = df['second'].fillna(23)
以上两种方法都是在原有DataFrame基础上修改单元格内容,不会新增任何行或列。
内容的提问来源于stack exchange,提问作者Kanagaryu
相关产品推荐
相关产品推荐

