Pandas如何在DataFrame指定单元格插入数值0?
问题描述
我有一个时间序列类型的DataFrame,数据如下:
01/05/2023 25.1 25.9 25.1 01/05/2023 1 25.1 25.2 25.0 01/05/2023 2 24.7 25.1 24.7 01/05/2023 3 24.7 24.8 NaN
需要将位于[0,1](即数字1上方的单元格)的位置设置为0,求最优实现方式。
最优实现方案
直接使用 pandas 的**整数位置索引.iloc**是最直接高效的方案,它专门用于基于行/列整数位置的精准定位,操作成本低且逻辑清晰。
代码实现
假设你的 DataFrame 变量名为df,执行以下代码即可完成赋值:
df.iloc[0, 1] = 0
关键说明
.iloc[row_idx, col_idx]中的参数是整数,分别对应目标单元格的行位置(从0开始计数)和列位置(从0开始计数),完全匹配你需求中的[0,1]定位。- 如果你的日期列是 DataFrame 的索引,
.iloc[0]依然能正确定位到第一行数据,不受索引类型影响。 - 相比基于标签的
.loc,当你明确知道目标位置的整数索引时,.iloc的性能更优,且不需要考虑列名或索引标签的变化。
执行后结果
修改后的 DataFrame 会变成:
01/05/2023 0 25.1 25.9 25.1 01/05/2023 1 25.1 25.2 25.0 01/05/2023 2 24.7 25.1 24.7 01/05/2023 3 24.7 24.8 NaN
内容的提问来源于stack exchange,提问作者Saulo Carvalho
相关产品推荐
相关产品推荐

