美文网首页
中文文档 pyspark.sql.DataFrameNaFunc

中文文档 pyspark.sql.DataFrameNaFunc

作者: cassie_xs | 来源:发表于2020-03-29 19:30 被阅读0次

    新版本1.4之后,在dataframe中处理丢失数据的功能。

    7.1 drop(how='any'thresh=Nonesubset=None):New in version 1.3.1.

    返回:一个新的,删除空值的行 DataFrame.dropna() and DataFrameNaFunctions.drop() 可以互相替代.

    参数:● – how. ‘any’ or ‘all’. If ‘any’,删除包含缺失值的行, If ‘all’, 删除所有值为缺失值的行

               ●–  thresh. int,默认为None如果指定,则删除小于阈值 非空值的行。这将覆盖how参数。

               ●–  subset. 子集-要考虑的列名的可选列表。

    In [386]: df4.dropna().show()

    +----+------+--------+

    |year|course|earnings|

    +----+------+--------+

    |2012|dotNET|  10000|

    |2012|dotNET|    5000|

    |2012|  Java|  20000|

    |2013|dotNET|  48000|

    |2013|  Java|  30000|

    |2012|    c|    9999|

    +----+------+--------+

    7.2: fill(valuesubset=None):新版本1.3.1之后

    替换null值也就是 for na.fill(). DataFrame.fillna() and DataFrameNaFunctions.fill() 是等价的

    参数:● – value – int, long, float, string, or dict.将空值替换。如果值是dict,则忽略子集,并且值必须是从列名(字符串)到替换值的映射。替换值必须是int、long、float或string。

               ●–subset. 可选择的列名列表。将忽略在子集中指定的不具有匹配数据类型的列。例如,如果值是一个字符串,而子集包含一个非字符串列,则只会忽略该非字符串列。

    df.fillna({df.columns[2]:20}).show()

    +-----+---+------+

    | name|age|height|

    +-----+---+------+

    |Alice|  2|    80|

    |  Bob|  5|    20|

    +-----+---+------+

    被忽略

    In [396]: df.fillna({df.columns[2]:'unknow'}).show()

    +-----+---+------+

    | name|age|height|

    +-----+---+------+

    |Alice|  2|    80|

    |  Bob|  5|  null|

    +-----+---+------+

    7.3 replace(to_replacevaluesubset=None):版本1.4后有的新功能

    参数:●to_replace– int、long、float、string或list。要替换的值。如果该值是dict,则忽略该值,并且to-replace必须是从列名(字符串)到替换值的映射。要替换的值必须是int、long、float或string。

               ●–value– int、long、float、string或list。用于替换孔的值。替换值必须是int、long、float或string。如果值是列表或元组,则值的长度应与to-replace的长度相同。

               ●–subset –可选择的列名列表。将忽略在子集中指定的不具有匹配数据类型的列。例如,如果值是一个字符串,而子集包含一个非字符串列,则只会忽略该非字符串列。

                返回:dataframe , DataFrame.replace() and DataFrameNaFunctions.replace() 是等价的    

    In [399]: df.na.replace(2,20).show()

    +-----+---+------+

    | name|age|height|

    +-----+---+------+

    |Alice| 20|    80|

    |  Bob|  5|  null|

    +-----+---+------+

    In [400]: df.show()

    +-----+---+------+

    | name|age|height|

    +-----+---+------+

    |Alice|  2|    80|

    |  Bob|  5|  null|

    +-----+---+------+

    In [402]: df.na.replace(['Alice','Bob'],['A','B']).show()

    +----+---+------+

    |name|age|height|

    +----+---+------+

    |  A|  2|    80|

    |  B|  5|  null|

    +----+---+------+

    相关文章

      网友评论

          本文标题:中文文档 pyspark.sql.DataFrameNaFunc

          本文链接:https://www.haomeiwen.com/subject/jhiuuhtx.html