当前位置: 首页 > news >正文

【Pandas】pandas Series fillna

Pandas2.2 Series

Computations descriptive stats

方法描述
Series.backfill(*[, axis, inplace, limit, …])用于填充 Series 中缺失值(NaN)的方法
Series.bfill(*[, axis, inplace, limit, …])用于填充 Series 中缺失值(NaN)的方法
Series.dropna(*[, axis, inplace, how, …])用于删除 Series 中包含缺失值(NaN)的元素的方法
Series.ffill(*[, axis, inplace, limit, …])用于填充 Series 中缺失值(NaN)的方法
Series.fillna([value, method, axis, …])用于填充 Series 中缺失值(NaN)的方法

pandas.Series.fillna

pandas.Series.fillna 是用于填充 Series 中缺失值(NaN)的方法。它提供了多种方式来处理缺失值,包括使用指定的值、前向填充(ffill)、后向填充(bfill)等。

参数说明
  • value:标量、字典、Series 或可调用对象,默认为 None。用于填充缺失值的具体值。如果传递的是字典或 Series,则仅填充匹配的索引标签。
  • method:字符串,默认为 None。指定填充方法:
    • 'backfill''bfill':用后面最近的有效观测值填充。
    • 'pad''ffill':用前面最近的有效观测值填充。
  • axis:{0或’index’},默认为0。表示沿哪个轴进行操作。对于 Series 来说,这个参数通常不需要设置。
  • inplace:布尔值,默认为 False。如果为 True,则就地修改原 Series,否则返回一个新的 Series
  • limit:整数,默认为 None。指定最大连续填充个数,超过此限制的缺失值将不被填充。
  • downcast:可选,默认为 <no_default>。用于向下转换数据类型,例如从浮点型转换为整型。
示例及结果
示例1:使用标量值填充缺失值
import pandas as pd
import numpy as np

# 创建一个包含缺失值的 Series
s = pd.Series([1, np.nan, np.nan, 4, 5, np.nan, 7])
print("原始 Series:")
print(s)

# 使用 fillna 方法并指定 value 参数
filled_s = s.fillna(value=0)
print("\n填充后的 Series (使用 fillna 并指定 value=0):")
print(filled_s)

输出结果:

原始 Series:
0    1.0
1    NaN
2    NaN
3    4.0
4    5.0
5    NaN
6    7.0
dtype: float64

填充后的 Series (使用 fillna 并指定 value=0):
0    1.0
1    0.0
2    0.0
3    4.0
4    5.0
5    0.0
6    7.0
dtype: float64
示例2:使用前向填充(ffill)
# 使用 fillna 方法并指定 method='ffill'
filled_s_ffill = s.fillna(method='ffill')
print("\n填充后的 Series (使用 fillna 并指定 method='ffill'):")
print(filled_s_ffill)

输出结果:

填充后的 Series (使用 fillna 并指定 method='ffill'):
0    1.0
1    1.0
2    1.0
3    4.0
4    5.0
5    5.0
6    7.0
dtype: float64
示例3:使用后向填充(bfill)
# 使用 fillna 方法并指定 method='bfill'
filled_s_bfill = s.fillna(method='bfill')
print("\n填充后的 Series (使用 fillna 并指定 method='bfill'):")
print(filled_s_bfill)

输出结果:

填充后的 Series (使用 fillna 并指定 method='bfill'):
0    1.0
1    4.0
2    4.0
3    4.0
4    5.0
5    7.0
6    7.0
dtype: float64
示例4:使用 inplace 参数
# 创建一个包含缺失值的 Series
s_inplace = pd.Series([1, np.nan, np.nan, 4, 5, np.nan, 7])
print("原始 Series:")
print(s_inplace)

# 使用 fillna 方法并设置 inplace=True
s_inplace.fillna(value=0, inplace=True)
print("\n填充后的 Series (使用 fillna 并设置 inplace=True):")
print(s_inplace)

输出结果:

原始 Series:
0    1.0
1    NaN
2    NaN
3    4.0
4    5.0
5    NaN
6    7.0
dtype: float64

填充后的 Series (使用 fillna 并设置 inplace=True):
0    1.0
1    0.0
2    0.0
3    4.0
4    5.0
5    0.0
6    7.0
dtype: float64
示例5:使用 limit 参数
# 创建一个包含缺失值的 Series
s_limit = pd.Series([1, np.nan, np.nan, 4, 5, np.nan, np.nan, 8])
print("原始 Series:")
print(s_limit)

# 使用 fillna 方法并设置 limit=1
filled_s_limit = s_limit.fillna(method='ffill', limit=1)
print("\n填充后的 Series (使用 fillna 并设置 limit=1):")
print(filled_s_limit)

输出结果:

原始 Series:
0    1.0
1    NaN
2    NaN
3    4.0
4    5.0
5    NaN
6    NaN
7    8.0
dtype: float64

填充后的 Series (使用 fillna 并设置 limit=1):
0    1.0
1    1.0
2    NaN
3    4.0
4    5.0
5    5.0
6    NaN
7    8.0
dtype: float64
示例6:使用字典或 Series 填充特定索引的缺失值
# 创建一个包含缺失值的 Series
s_dict = pd.Series([1, np.nan, np.nan, 4, 5, np.nan, 7], index=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
print("原始 Series:")
print(s_dict)

# 使用 fillna 方法并传递字典作为 value 参数
filled_s_dict = s_dict.fillna({'b': 2, 'c': 3, 'f': 6})
print("\n填充后的 Series (使用 fillna 并传递字典作为 value 参数):")
print(filled_s_dict)

输出结果:

原始 Series:
a    1.0
b    NaN
c    NaN
d    4.0
e    5.0
f    NaN
g    7.0
dtype: float64

填充后的 Series (使用 fillna 并传递字典作为 value 参数):
a    1.0
b    2.0
c    3.0
d    4.0
e    5.0
f    6.0
g    7.0
dtype: float64

通过这些示例,可以看到 fillna 方法在不同参数下的使用方式及其效果。特别是 valuemethodlimit 参数可以更灵活地控制填充行为,从而更好地处理缺失值。

相关文章:

  • AIGC生图产品PM必须知道的Lora训练知识!
  • 服务端驱动UI架构解析:React Server Components与流式渲染的革命
  • 大模型(DeepSeek),具身智能,VLA(pi0),机器人,全网资料总结。
  • C++ AVL树详解(含模拟实现)
  • Windows环境下SuperMapGIS 11i 使用达梦数据库
  • 一个借助ai分析市场交易数据的流程方法
  • 2. 在后端代码中加入日志记录模块
  • XR应用测试:探索虚拟与现实的边界
  • Qt基于等待条件QWaitCondition实现的任务队列模型示例
  • 涨薪技术|掌握带安全认证的接口测试
  • 一文详解基于NarrotoAI的短剧短视频自动解说、混剪AI平台搭建
  • Kubernetes LimitRange对于pod 的 update 事件会不会处理?
  • DMA发送全部历史记录数据到串口
  • AWS SQS跨账户访问失败排查指南
  • (转)Java多态`
  • AI大模型-提示工程学习笔记22-元提示(meta-prompting)
  • GPT-4.5 怎么样?如何升级使用ChatGPTPlus/Pro? GPT-4.5设计目标是成为一款非推理型模型的巅峰之作
  • 智能机器人加速进化:AI大模型与传感器的双重buff加成
  • 华为云之使用鲲鹏弹性云服务器部署Node.js环境【玩转华为云】
  • 活动报名:Voice Agent 技术现状及应用展望丨 3.8 北京
  • 网站建设 微信营销/网站优化排名易下拉系统
  • 互联网网站开发合同范本/深圳百度竞价托管公司
  • 孟村县做网站/昆明自动seo
  • 电子配件 技术支持 东莞网站建设/互联网优化是什么意思
  • 湖北网站建设哪里有/互联网线上推广
  • 代理注册公司靠谱吗?/系统优化的意义