python_pandas_fillna_填充空值

pandas.DataFrame.fillna

0、功能:使用指定的方法填充NA/NaN值

1、详解

(1)、函数形式

DataFrame.fillna(value=None, *, method=None, axis=None, inplace=False, limit=None, downcast=_NoDefault.no_default)

(2)、参数

  • value: 标量、字典、series、dataframe
    • 标量:全部填写为同一特定值
    • 字典、dataframe:按列填写不同特定值
    • series:按index填写不同特定值
  • method: {‘backfill’, ‘bfill’, ‘ffill’, None}, default None
    • 定义了填充空值的方法
    • ‘ffill’ 用前一个非空缺值填充
    • ‘bfill’ 用后一个非空缺值填充
  • axis: {0 or ‘index’} for Series, {0 or ‘index’, 1 or ‘columns’} for DataFrame
    • ‘index’:按行填充
    • 'columns’按列填充
  • inplace: bool, default False
    • 是否用新生成的列表替换原列表
    • 如果为True,则在原DataFrame上进行操作,返回值为None。
  • limit: int, default None
    • 如果method被指定,对于连续的空值,这段连续区域,最多填充前 limit 个空值(如果存在多段连续区域,每段最多填充前 limit 个空值)。如果method未被指定, 在该axis下,最多填充前 limit 个空值(不论空值连续区间是否间断)

2、例子(官方教程)

生成一个dataframe对象

>>> df = pd.DataFrame([[np.nan, 2, np.nan, 0],
...                    [3, 4, np.nan, 1],
...                    [np.nan, np.nan, np.nan, np.nan],
...                    [np.nan, 3, np.nan, 4]],
...                   columns=list("ABCD"))
>>> df
     A    B   C    D
0  NaN  2.0 NaN  0.0
1  3.0  4.0 NaN  1.0
2  NaN  NaN NaN  NaN
3  NaN  3.0 NaN  4.0

用0填充

df.fillna(0)
     A    B    C    D
0  0.0  2.0  0.0  0.0
1  3.0  4.0  0.0  1.0
2  0.0  0.0  0.0  0.0
3  0.0  3.0  0.0  4.0

用字典填充(不同的列用不同的填充方式)

>>> values = {"A": 0, "B": 1, "C": 2, "D": 3}
>>> df.fillna(value=values)
     A    B    C    D
0  0.0  2.0  2.0  0.0
1  3.0  4.0  2.0  1.0
2  0.0  1.0  2.0  3.0
3  0.0  3.0  2.0  4.0

只替换第一个NaN元素

>>> df.fillna(value=values, limit=1)
     A    B    C    D
0  0.0  2.0  2.0  0.0
1  3.0  4.0  NaN  1.0
2  NaN  1.0  NaN  3.0
3  NaN  3.0  NaN  4.0

用dataframe填充(只有相同的列名才会填充)

>>> df2 = pd.DataFrame(np.zeros((4, 4)), columns=list("ABCE"))
>>> df.fillna(df2)
     A    B    C    D
0  0.0  2.0  0.0  0.0
1  3.0  4.0  0.0  1.0
2  0.0  0.0  0.0  NaN
3  0.0  3.0  0.0  4.0
  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python中的pandas库是数据分析和处理的重要工具。以下是pandas中一些常用的函数: 1. 读取数据: - read_csv(): 从CSV文件中读取数据。 - read_excel(): 从Excel文件中读取数据。 - read_sql(): 从SQL数据库中读取数据。 - read_json(): 从JSON文件中读取数据。 - read_html(): 从HTML文件或网页中读取表格数据。 2. 数据预览和概览: - head(): 查看DataFrame的前几行。 - tail(): 查看DataFrame的后几行。 - info(): 显示DataFrame的概要信息,包括列名和数据类型等。 - describe(): 显示DataFrame的统计描述信息,包括均值、方差等。 3. 数据选择和过滤: - loc[]: 通过标签选择行和列。 - iloc[]: 通过位置选择行和列。 - isin(): 判断元素是否属于给定的列表或数组。 - query(): 使用表达式查询数据。 4. 数据清洗和处理: - dropna(): 删除包含缺失值的行或列。 - fillna(): 填充缺失值。 - drop_duplicates(): 删除重复的行。 - replace(): 替换特定值。 5. 数据排序和排名: - sort_values(): 按照指定列的值进行排序。 - sort_index(): 按照索引进行排序。 - rank(): 对值进行排名。 6. 数据聚合和分组: - groupby(): 根据某些列的值进行分组。 - agg(): 对每个组应用聚合函数。 - pivot_table(): 创建透视表。 这只是一些常用的函数,pandas还有许多其他功能强大的函数可以用于数据处理和分析。你可以参考pandas官方文档以获得更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭小儒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值