当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python pyspark DataFrame.fillna用法及代码示例

本文简要介绍 pyspark.pandas.DataFrame.fillna 的用法。

用法:

DataFrame.fillna(value: Union[Any, Dict[Union[Any, Tuple[Any, …]], Any], None] = None, method: Optional[str] = None, axis: Union[int, str, None] = None, inplace: bool = False, limit: Optional[int] = None) → Optional[pyspark.pandas.frame.DataFrame]

填写 NA/NaN 值。

注意

当前在fillna 中‘method’ 参数的实现使用Spark 的Window,没有指定分区规范。这会导致将所有数据移动到单个机器中的单个分区中,并可能导致严重的性能下降。避免对非常大的数据集使用此方法。

参数

value标量,字典,系列

用于填补漏洞的值。或者是一个字典/一系列值,指定每列使用哪个值。不支持DataFrame。

method{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, 无},默认无

用于填充重新索引系列 pad/ffill 中的孔的方法:将最后一个有效观察向前传播到下一个有效回填/bfill:使用 NEXT 有效观察来填充间隙

axis{0 或 index }

不支持 1 和 columns

inplace布尔值,默认为 False

就地填充(不创建新对象)

limit整数,默认无

如果指定了方法,则这是要向前/向后填充的连续 NaN 值的最大数量。换句话说,如果存在连续 NaN 数量超过此数量的间隙,则只会部分填充。如果未指定方法,则这是沿整个轴填充 NaNs 的最大条目数。如果不是 None 则必须大于 0

返回

DataFrame

DataFrame 已填充 NA 条目。

例子

>>> df = ps.DataFrame({
...     'A': [None, 3, None, None],
...     'B': [2, 4, None, 3],
...     'C': [None, None, None, 1],
...     'D': [0, 1, 5, 4]
...     },
...     columns=['A', 'B', 'C', 'D'])
>>> df
     A    B    C  D
0  NaN  2.0  NaN  0
1  3.0  4.0  NaN  1
2  NaN  NaN  NaN  5
3  NaN  3.0  1.0  4

将所有 NaN 元素替换为 0。

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

我们还可以向前或向后传播非空值。

>>> df.fillna(method='ffill')
     A    B    C  D
0  NaN  2.0  NaN  0
1  3.0  4.0  NaN  1
2  3.0  4.0  NaN  5
3  3.0  3.0  1.0  4

将‘A’、‘B’、‘C’和‘D’列中的所有 NaN 元素分别替换为 0、1、2 和 3。

>>> 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
1  3.0  4.0  2.0  1
2  0.0  1.0  2.0  5
3  0.0  3.0  1.0  4

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.pandas.DataFrame.fillna。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。