精华内容
下载资源
问答
  • pandas 缺失值处理

    2019-04-05 09:58:02
    文章目录创建数据判断是否有缺失值及统计删除含有缺失值的行、列缺失值补充缺失值替换 创建数据 import pandas as pd import numpy as np data = pd.DataFrame({'a': [1, 2, 4, np.nan,7, 9], 'b': ['a', 'b', np....

    创建数据
    import pandas as pd
    import numpy as np
    data = pd.DataFrame({'a': [1, 2, 4, np.nan,7, 9], 'b': ['a', 'b', np.nan, np.nan, 'd', 'e'], 'c': [np.nan, 0, 4, np.nan, np.nan, 5], 'd': [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]})
         a    b    c   d
    0  1.0    a  NaN NaN
    1  2.0    b  0.0 NaN
    2  4.0  NaN  4.0 NaN
    3  NaN  NaN  NaN NaN
    4  7.0    d  NaN NaN
    5  9.0    e  5.0 NaN
    
    判断是否有缺失值及统计
    print(data.isnull().any())
    
    a    True
    b    True
    c    True
    d    True
    
    print(data.isnull().sum())  #t统计每一列的缺失值个数
    a    1
    b    2
    c    3
    d    6
    
    删除含有缺失值的行、列

    axis 参数用于控制行或列,跟其他不一样的是,axis=0 (默认)表示操作行,axis=1 表示操作列。
    how 参数可选的值为 any(默认) 或者 all。any 表示一行/列有任意元素为空时即丢弃,all 一行/列所有值都为空时才丢弃。
    subset 参数表示删除时只考虑的索引或列名。
    thresh参数的类型为整数,它的作用是,比如 thresh=3,会在一行/列中至少有 3 个非空值时将其保留。

    df = data.dropna(axis=0,how='all')  #data不会改变
    print(df)
      a    b    c   d
    0  1.0    a  NaN NaN
    1  2.0    b  0.0 NaN
    2  4.0  NaN  4.0 NaN
    4  7.0    d  NaN NaN
    5  9.0    e  5.0 NaN
    
    df = data.dropna(axis=0,how='any')  #data不会改变
    print(df)
    out:
    Empty DataFrame
    Columns: [a, b, c, d]
    Index: []
    
    df = data.dropna(axis=0,how='any',subset=["b"]) #subset 只考虑的行或列
    print(df)
    

    对列操作将axis换为1

    缺失值补充

    最常见的是使用 fillna 完成填充。
    data.fillna(0)

    除了可以使用标量来填充之外,还可以使用前一个或后一个有效值来填充。
    设置参数 method=‘pad’ 或 method=‘ffill’ 可以使用前一个有效值来填充。
    设置参数 method=‘bfill’ 或 method=‘backfill’ 可以使用后一个有效值来填充。

    除了通过 fillna 方法来填充缺失值外,还可以通过 interpolate 方法来填充。默认情况下使用线性差值,可以是设置 method 参数来改变方式。

    缺失值替换

    None、np.nan、NaT 这些都是缺失值。这些在 Pandas 的眼中是缺失值,有时候在我们人类的眼中,某些异常值我们也会当做缺失值来处理。

    例如,在我们的存储的用户信息中,假定我们限定用户都是青年,出现了年龄为 40 的,我们就可以认为这是一个异常值。再比如,我们都知道性别分为男性(male)和女性(female),在记录用户性别的时候,对于未知的用户性别都记为了 “unknown”,很明显,我们也可以认为“unknown”是缺失值。此外,有的时候会出现空白字符串,这些也可以认为是缺失值。

    对于上面的这种情况,我们可以使用 replace 方法来替换缺失值。

    user_info.replace({“age”: 40, “birth”: pd.Timestamp(“1978-08-08”)}, np.nan) #将年龄40替换 日期为1978-08-08也替换

    也可采用正则表达式替换
    user_info.city.replace(r’\s+’, np.nan, regex=True)

    参考:https://blog.csdn.net/caowenyi88/article/details/80865551

    展开全文
  • 主要介绍了简单了解Pandas缺失值处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • pandas缺失值处理

    2019-07-15 14:22:14
    (1)如果想将inf或-inf当成NaN,可以通过以下设置 pandas.options.mode.use_inf_as_na = True

    (1)如果想将inf或-inf当成NaN,可以通过以下设置

    pandas.options.mode.use_inf_as_na = True
    

    (2)NaN是个浮点数,如果某一特征的取值为整数,而且又含有NaN,如果想让NaN表示整形,则需要显示的指定数据类型

    pandas 0.24以上版本

    pd.Series([1, 2, np.nan, 4], dtype=“Int64”) # 将数据类型设为Int64,如果不指定,则报以下错误
    # cannot convert float NaN to integer
    

    (3)缺失值填充

    • 使用标量进行填充
    df.fillna(0) # 对所有nan以0填充
    df["col"].fillna(0) # 对col这一列的nan用0进行填充
    
    • 前向填充
    df.fillna(method="pad", limit=2) # 前向填充,填充数量为2
    常用的填充方法:
    pad/ffill : 前向填充
    bfill/backfill : 后向填充
    
    df
    Out[47]: 
       one       two     three
    a  NaN -0.282863 -1.509059
    c  NaN  1.212112 -0.173215
    e  NaN       NaN       NaN
    f  NaN       NaN       NaN
    h  NaN -0.706771 -1.039575
    
    In [48]: df.fillna(method='pad', limit=1)
    Out[48]: 
       one       two     three
    a  NaN -0.282863 -1.509059
    c  NaN  1.212112 -0.173215
    e  NaN  1.212112 -0.173215
    f  NaN       NaN       NaN
    h  NaN -0.706771 -1.039575
    

    对df的某一列的某一段区间进行填充

    d1 = pd.DataFrame({"a":[1, np.nan, 3, 4, 5, np.nan], "b":[3,4,5,6,7,8]})
    #    a  b
    0  1.0  3
    1  NaN  4
    2  3.0  5
    3  4.0  6
    4  5.0  7
    5  NaN  8
    d1["a"].fillna(method="ffill", limit=1, inplace=True) # inplace原地填充
    # d1[["a"]].fillna(method="ffill", limit=1, inplace=True) # 这种方式不对
    d1["a"].iloc[0:3].fillna(method="ffill", inplace=True) # 对a这一列的某段区间进行原地填充, 注意如果区间只含有一个元素使用d1["a"].iloc[i:i+1],
    # d1["a"].iloc[i]返回的是一个数,而不是Series对象
    # df["a"].iloc[0:3, :] #错误, Series没有第二维
    # df[["a"]].iloc[0:3] 的结果与df[["a]].iloc[0:3, :]的结果一致
    

    使用df的一列填充另一列

    ada

    df["Cat1"].fillna(df["Cat2"]) # 要保证df["Cat1"]与df["Cat2"]的索引一致
    

    结果为:
    在这里插入图片描述

    • Interpolation
      Series和DataFrame对象都有interpolate()方法。
    df.interpolate(method="linear", limit=1, limit_direction='backward') # 默认为线性插值
    # limit_direction: backward, 默认forward, both:双向填充
    # method可以的取值(可以是scipy中任意的一维插值方法)
     - linear
     - nearest
     - zero, 0阶样条插值
     - slinear, 一阶样条插值
     - quadratic,二阶样条插值
     - cubic,三界样条插值
     - previous,用NaN的前一个数插值
     - next,用NaN的后一个数插值
    
    • df.replace(src, target)
      将df中的src替换成target, df.replace({src1:tar1, src2: tar2,…})

    (4)小知识点

    1.找出df中全为空的行

    df.loc[df.isnull().all(axis=1)]
    

    2.找出df中含有缺失值的行

    df.loc[df.isnull().any(axis=1)]
    
    展开全文
  • pandas缺失值处理-task01

    2020-06-23 14:57:18
    pandas 缺失值处理1.缺失值种类1.1 令人头秃的np.nan1.2 基本见不到的None1.3 时间缺失项NaT2.新特性2.1 解决缺失值改变数据类型的问题3.缺失值插值 1.缺失值种类 pandas中缺失值有三种,np.nan,None,及针对时间的...

    1.缺失值种类

    pandas中缺失值有三种,np.nan,None,及针对时间的缺失值类型,NaT,下面分开讲解这三种类型。

    1.1 令人头秃的np.nan

    首先是np.nan,由于pandas是基于Numpy的,Numpy的缺失值类型就是pandas最常见的缺失值类。但这个np.nan有大量问题,分下面几点。

    • 1.条件判断问题。np.nan什么也不等于,其实就是说它不等于自己,一个字符,‘a’只等于‘a’,但碰到np.nan,好了,你想循环一个列表,找出值为np.nan的列,使用 if i==np.nan:,不好意思,这个找不到,不可能有值等于np.nan的元素,你永远找不到,白瞎。
    • 2.数据类型变化问题。np.nan会改变该列的数据类型,np.nan是带有数据类型的,为float(64)。如果整形含有np.nan缺失值,那么该列会变为浮点型。如果是bool类型数据列,含有np.nan的地方,会自动填充为True。(正常来说应该变为False才对,这一点真的很难理解pandas的设计原理)。但当修改一个布尔列表时,将一个值赋值为np.nan的话,由于np.nan本身为浮点型数据,这样会改变列表类型为浮点型,原来True变为1.0,但赋值的地方为np.nan。对于字符型数据列,含有np.nan的话,由于字符型无法转为浮点型,所以该列的数据会变为Object类型。这是导致数据类型混乱的一大原因。

    1.2 问题少一点的None

    None比np.nan好一点,有如下几点:

    • 1.它可以等于自己。使用None==None,得到True
    • 2.本身布尔值为False,赋值给bool数据类型时,不会改变原数据类型。
      None空值类型,在数据列有数值类型数据时,None会变为np.nan
      只有当数据类型为object时,None会保持其数据类型。
    • None只有人为命名时,才会出现,因为pandas默认空值为np.nan

    1.3 时间缺失项NaT

    在时间类型中出现缺失值时,不管是np.nan还是None,都会转为NaT,这是时间缺失值的特殊缺失值类型。

    2.新特性

    2.1 Nullable数据类型

    为了解决原pandas中缺失值数据类型造成的问题,pandas 1.0中新引进Int64,boolean,string,三种新数据类型,这三种数据类型叫做Nullable型数据,对缺失值有统一管理。

    s_new = pd.Series([1, 2], dtype="Int64")
    s_new[1] = np.nan
    s_new
    
    
    0       1
    1    <NA>
    dtype: Int64
    

    在新数据类型下,出现缺失值会统一显示为,且数值类型不会改变

    s_new[1] = None
    s_new
    
    0       1
    1    <NA>
    dtype: Int64
    

    这三种数据类型的特点在于,有缺失值并不会改变其数据类型。
    此外,对于stringl类型数据,和object类型的一点重要区别就在于,在调用字符方法后,string类型返回的是Nullable类型,object则会根据缺失类型和数据类型而改变

    2.2 引入的新函数以进行数据转换

    convert_dtypes方法
    这个函数的功能往往就是在读取数据时,就把数据列转为Nullable类型,是1.0的新函数,使用十分方便。

    pd.read_csv('data/table_missing.csv').convert_dtypes().dtypes
    Out[73]:
    School      string
    Class       string
    ID           Int64
    Gender      string
    Address     string
    Height       Int64
    Weight       Int64
    Math       float64
    Physics     string
    dtype: object
    

    3.缺失值的运算特性及填充

    3.1 缺失值的统计运算特性

    在进行数据统计时,使用求和函数,缺失值会被当为0计算,乘法则会当为1计算,其他情况会跳过缺失值。

    3.2 缺失值的填充

    1. fillna方法
      (a)值填充与前后向填充(分别与ffill方法和bfill方法等价)
      值填充
    df['Physics'].fillna('missing').head()
    0         A+
    1         B+
    2         B+
    3    missing
    4         A-
    Name: Physics, dtype: object
    

    前后填充

    #ffill 表示使用缺失值前一个非缺失值的数据填充,bfill则表示后一个值
    df['Physics'].fillna(method='ffill').head()
    

    (b)填充中的对齐特性
    这里的对齐特性,指的是只填充返回结果中的列。

    2.dropna方法
    dropna方法有三个参数,轴的方向axis,删除方法how,和判断区域subset
    (a)axis=0,1表示的按行看还是按列看

    df_d = pd.DataFrame({'A':[np.nan,np.nan,np.nan],'B':[np.nan,3,2],'C':[3,2,1]})
    df_d.dropna(axis=0)
    	A	B	C
    0	NaN	NaN	3
    1	NaN	3.0	2
    2	NaN	2.0	1
    
    A  B  C
    

    返回结果为空,因为每一行都有缺失值

    (b) how参数(可以选all或者any,表示全为缺失去除和存在缺失去除)

    In [89]:
    df_d.dropna(axis=1,how='all')
    Out[89]:
    	B	C
    0	NaN	3
    1	3.0	2
    2	2.0	1
    

    (C)subset参数(即在某一组列范围中搜索缺失值)

    In [90]:
    df_d.dropna(axis=0,subset=['B','C'])
    Out[90]:
    	A	B	C
    1	NaN	3.0	2
    2	NaN	2.0	1
    

    3.3线性插值及其他插值

    (a)索引无关的线性插值
    默认状态下,interpolate会对缺失的值进行线性插值

    In [91]:
    s = pd.Series([1,10,15,-5,-2,np.nan,np.nan,28])
    s
    Out[91]:
    0     1.0
    1    10.0
    2    15.0
    3    -5.0
    4    -2.0
    5     NaN
    6     NaN
    7    28.0
    dtype: float64
    

    这种插值方法与索引无关,会造成并不是线性的结果

    s.interpolate()
    Out[92]:
    0     1.0
    1    10.0
    2    15.0
    3    -5.0
    4    -2.0
    5     8.0
    6    18.0
    7    28.0
    dtype: float64
    

    加入时间索引或者索引,会取得真的线性插值结果

    s.interpolate(method='index').plot()
    

    索引为时间时

    s_t = pd.Series([0,np.nan,10]
            ,index=[pd.Timestamp('2012-05-01'),pd.Timestamp('2012-05-07'),pd.Timestamp('2012-06-03')])
    s_t.interpolate(method='time')
    
    • 高级插值方法
      此处的高级指的是与线性插值相比较,例如样条插值、多项式插值、阿基玛插值等(需要安装Scipy)。
    ser = pd.Series(np.arange(1, 10.1, .25) ** 2 + np.random.randn(37))
    missing = np.array([4, 13, 14, 15, 16, 17, 18, 20, 29])
    ser[missing] = np.nan
    methods = ['linear', 'quadratic', 'cubic']
    df = pd.DataFrame({m: ser.interpolate(method=m) for m in methods})
    df.plot()
    

    插值的一些参数设置
    (a)limit表示最多插入多少个

    s = pd.Series([1,np.nan,np.nan,np.nan,5])
    s.interpolate(limit=2)
    
    0    1.0
    1    2.0
    2    3.0
    3    NaN
    4    5.0
    dtype: float64
    

    (b)limit_direction表示插值方向,可选forward,backward,both,默认前向

    s = pd.Series([np.nan,np.nan,1,np.nan,np.nan,np.nan,5,np.nan,np.nan,])
    s.interpolate(limit_direction='backward')
    0    1.0
    1    1.0
    2    1.0
    3    2.0
    4    3.0
    5    4.0
    6    5.0
    7    NaN
    8    NaN
    dtype: float64
    

    (c)插值区域参数设置

    s = pd.Series([np.nan,np.nan,1,np.nan,np.nan,np.nan,5,np.nan,np.nan,])
    s.interpolate(limit_area='inside')
    
    0    NaN
    1    NaN
    2    1.0
    3    2.0
    4    3.0
    5    4.0
    6    5.0
    7    NaN
    8    NaN
    dtype: float64
    

    ``None’’:没有填充限制。‘inside’:仅填充有效值包围的NaN(插)。‘外部’:仅在有效值之外填充NaN(外推)。

    参考

    [1] datawhalechina/joyful-pandas

    展开全文
  • pandas缺失值处理.pptx

    2021-09-15 07:38:54
    Pandas的初学者们免费下载学习使用
  • pandas 缺失值处理.md

    2019-09-01 15:05:12
    主要介绍缺失值的定义、产生与处理,对缺失值处理时的一些影响
  • import pandas as pd什么是缺失值 在了解缺失值(也叫控制)如何处理之前,首先要知道的就是什么是缺失值?直观上理解,缺失值表示的是“缺失的数据”。可以思考一个问题:是什么原因造成的缺失值呢?其实有很多...

    转自:http://www.naodongopen.com/997.html

    # 导入相关库
    import numpy as np
    import pandas as pd
    什么是缺失值

        在了解缺失值(也叫控制)如何处理之前,首先要知道的就是什么是缺失值?直观上理解,缺失值表示的是“缺失的数据”

    可以思考一个问题:是什么原因造成的缺失值呢?其实有很多原因,实际生活中可能由于有的数据不全所以导致数据缺失,也有可能由于误操作导致数据缺失,又或者人为地造成数据缺失。

    来看下我们的示例吧。

    index = pd.Index(data=["Tom", "Bob", "Mary", "James", "Andy", "Alice"], name="name")
    
    data = {
        "age": [18, 30, np.nan, 40, np.nan, 30],
        "city": ["BeiJing", "ShangHai", "GuangZhou", "ShenZhen", np.nan, " "],
        "sex": [None, "male", "female", "male", np.nan, "unknown"],
        "birth": ["2000-02-10", "1988-10-17", None, "1978-08-08", np.nan, "1988-10-17"]
    }
    
    user_info = pd.DataFrame(data=data, index=index)
    
    # 将出生日期转为时间戳
    user_info["birth"] = pd.to_datetime(user_info.birth)
    user_info
    
     agebirthcitysex
    name    
    Tom18.02000-02-10BeiJingNone
    Bob30.01988-10-17ShangHaimale
    MaryNaNNaTGuangZhoufemale
    James40.01978-08-08ShenZhenmale
    AndyNaNNaTNaNNaN
    Alice30.01988-10-17 unknown
        可以看到,用户 Tom 的性别为 None,用户 Mary 的年龄为 NAN,生日为 NaT。在 Pandas 的眼中,这些都属于缺失值,可以使用 isnull()notnull() 方法来操作。
    user_info.isnull()
     agebirthcitysex
    name    
    TomFalseFalseFalseTrue
    BobFalseFalseFalseFalse
    MaryTrueTrueFalseFalse
    JamesFalseFalseFalseFalse
    AndyTrueTrueTrueTrue
    AliceFalseFalseFalseFalse

        除了简单的可以识别出哪些是缺失值或非缺失值外,最常用的就是过滤掉一些缺失的行。比如,我想过滤掉用户年龄为空的用户,如何操作呢?

    user_info[user_info.age.notnull()]
     agebirthcitysex
    name    
    Tom18.02000-02-10BeiJingNone
    Bob30.01988-10-17ShangHaimale
    James40.01978-08-08ShenZhenmale
    Alice30.01988-10-17 unknown

    丢弃缺失值

        既然有缺失值了,常见的一种处理办法就是丢弃缺失值。使用 dropna 方法可以丢弃缺失值。

    user_info.age.dropna()
    name
    Tom      18.0
    Bob      30.0
    James    40.0
    Alice    30.0
    Name: age, dtype: float64

        Seriese 使用 dropna 比较简单,对于 DataFrame 来说,可以设置更多的参数。

        axis 参数用于控制行或列,跟其他不一样的是,axis=0 (默认)表示操作行,axis=1 表示操作列。

        how 参数可选的值为 any(默认) 或者 allany 表示一行/列有任意元素为空时即丢弃,all 一行/列所有值都为空时才丢弃。

        subset 参数表示删除时只考虑的索引或列名。

        thresh参数的类型为整数,它的作用是,比如 thresh=3,会在一行/列中至少有 3 个非空值时将其保留。

    # 一行数据只要有一个字段存在空值即删除
    user_info.dropna(axis=0, how="any")
    
     agebirthcitysex
    name    
    Bob30.01988-10-17ShangHaimale
    James40.01978-08-08ShenZhenmale
    Alice30.01988-10-17 unknown
    # 一行数据所有字段都为空值才删除
    user_info.dropna(axis=0, how="all")
    
     agebirthcitysex
    name    
    Tom18.02000-02-10BeiJingNone
    Bob30.01988-10-17ShangHaimale
    MaryNaNNaTGuangZhoufemale
    James40.01978-08-08ShenZhenmale
    Alice30.01988-10-17 unknown
    # 一行数据中只要 city 或 sex 存在空值即删除
    user_info.dropna(axis=0, how="any", subset=["city", "sex"])
    
     agebirthcitysex
    name    
    Bob30.01988-10-17ShangHaimale
    MaryNaNNaTGuangZhoufemale
    James40.01978-08-08ShenZhenmale
    Alice30.01988-10-17 unknown

    填充缺失值

        除了可以丢弃缺失值外,也可以填充缺失值,最常见的是使用 fillna 完成填充。

        fillna 这名字一看就是用来填充缺失值的。

        填充缺失值时,常见的一种方式是使用一个标量来填充。例如,这里我样有缺失的年龄都填充为 0。

    user_info.age.fillna(0)
    name
    Tom      18.0
    Bob      30.0
    Mary      0.0
    James    40.0
    Andy      0.0
    Alice    30.0
    Name: age, dtype: float64

        除了可以使用标量来填充之外,还可以使用前一个或后一个有效值来填充。

        设置参数 method='pad'method='ffill' 可以使用前一个有效值来填充。

    user_info.age.fillna(method="ffill")
    name
    Tom      18.0
    Bob      30.0
    Mary     30.0
    James    40.0
    Andy     40.0
    Alice    30.0
    Name: age, dtype: float64

        设置参数 method='bfill'method='backfill' 可以使用后一个有效值来填充。

    user_info.age.fillna(method="backfill")
    name
    Tom      18.0
    Bob      30.0
    Mary     40.0
    James    40.0
    Andy     30.0
    Alice    30.0
    Name: age, dtype: float64

        除了通过 fillna 方法来填充缺失值外,还可以通过 interpolate 方法来填充。默认情况下使用线性差值,可以是设置 method 参数来改变方式。

    user_info.age.interpolate()
    name
    Tom      18.0
    Bob      30.0
    Mary     35.0
    James    40.0
    Andy     35.0
    Alice    30.0
    Name: age, dtype: float64

    替换缺失值

        大家有没有想过一个问题:到底什么才是缺失值呢?你可能会奇怪说,前面不是已经说过了么,Nonenp.nanNaT 这些都是缺失值。但是我也说过了,这些在 Pandas 的眼中是缺失值,有时候在我们人类的眼中,某些异常值我们也会当做缺失值来处理。

        例如,在我们的存储的用户信息中,假定我们限定用户都是青年,出现了年龄为 40 的,我们就可以认为这是一个异常值。再比如,我们都知道性别分为男性(male)和女性(female),在记录用户性别的时候,对于未知的用户性别都记为了 “unknown”,很明显,我们也可以认为“unknown”是缺失值。此外,有的时候会出现空白字符串,这些也可以认为是缺失值。

    对于上面的这种情况,我们可以使用 replace 方法来替换缺失值。

    user_info.age.replace(40, np.nan)
    name
    Tom      18.0
    Bob      30.0
    Mary      NaN
    James     NaN
    Andy      NaN
    Alice    30.0
    Name: age, dtype: float64

    也可以指定一个映射字典。

    user_info.age.replace({40: np.nan})
    name
    Tom      18.0
    Bob      30.0
    Mary      NaN
    James     NaN
    Andy      NaN
    Alice    30.0
    Name: age, dtype: float64

    对于 DataFrame,可以指定每列要替换的值。

    user_info.replace({"age": 40, "birth": pd.Timestamp("1978-08-08")}, np.nan)
     agebirthcitysex
    name    
    Tom18.02000-02-10BeiJingNone
    Bob30.01988-10-17ShangHaimale
    MaryNaNNaTGuangZhoufemale
    JamesNaNNaTShenZhenmale
    AndyNaNNaTNaNNaN
    Alice30.01988-10-17 unknown

    类似地,我们可以将特定字符串进行替换,如:将 "unknown" 进行替换。

    user_info.sex.replace("unknown", np.nan)
    name
    Tom        None
    Bob        male
    Mary     female
    James      male
    Andy        NaN
    Alice       NaN
    Name: sex, dtype: object

    除了可以替换特定的值之外,还可以使用正则表达式来替换,如:将空白字符串替换成空值。

    user_info.city.replace(r'\s+', np.nan, regex=True)
    name
    Tom        BeiJing
    Bob       ShangHai
    Mary     GuangZhou
    James     ShenZhen
    Andy           NaN
    Alice          NaN
    Name: city, dtype: object

    使用其他对象填充

    除了我们自己手动丢弃、填充已经替换缺失值之外,我们还可以使用其他对象来填充。

    例如有两个关于用户年龄的 Series,其中一个有缺失值,另一个没有,我们可以将没有的缺失值的 Series 中的元素传给有缺失值的。

    age_new = user_info.age.copy()
    age_new.fillna(20, inplace=True)
    age_new
    name
    Tom      18.0
    Bob      30.0
    Mary     20.0
    James    40.0
    Andy     20.0
    Alice    30.0
    Name: age, dtype: float64
    user_info.age.combine_first(age_new)
    name
    Tom      18.0
    Bob      30.0
    Mary     20.0
    James    40.0
    Andy     20.0
    Alice    30.0
    Name: age, dtype: float64
    可以看到,用户信息中关于年龄的缺失值都使用 age_new 这个 Series 填充了。
    
    展开全文
  • 文章目录主要方法发现缺失值处理缺失值dropna()fillna() 主要方法 #发现缺失值 isnull() #使用布尔类型掩码True/False标记缺失值 notnull() #与isnull相反,缺失项为False #处理缺失值 dropna() #删除缺失值 fillna...
  • values = {"Longitude":114.154861,"Latitude":22.331879} data = data.fillna(value=values)
  • 图解pandas缺失值处理

    2021-07-06 23:11:03
    本篇文章将介绍如何使用Pandas库来处理缺失值Pandas系列 Pandas文章已经连载12篇,往期精选文章: 1-图解pandas的排序机制 2-图解pandas的排名机制 3-图解pandas的groupby机制 常用函数 当我们的数据中出现了...
  • 获取缺失值的标记方式(NaN或者其他标记方式) 如果缺失值的标记方式是NaN 判断数据中是否包含NaN: pd.isnull(df), pd.notnull(df) 存在缺失值nan: 1、删除存在缺失值的:dropna(axis=‘rows’) 注:不会...
  • 上述数据中有缺失值,但是列password和age原本都应该是Int类型,然而经过了pandas的读取后,对缺失值自动填充了浮点值NAN,导致了整列数据的类型变为了浮点型,即使过后使用fillna函数填充也还是浮点数,求教大神,...
  • pandas 缺失值与空值处理

    万次阅读 多人点赞 2018-07-07 10:30:49
    1.相关函数df.dropna()df.fillna()df....缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可3.函数具体解释DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=...
  • 主要介绍了Pandas缺失值2种处理方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了pandas 缺失值与空值处理的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Pandas | 缺失值处理

    2020-12-11 19:10:08
    Pandas缺失值处理 文章目录Pandas缺失值处理前言一、判断缺失值二、处理缺失值利用sklearn工具填充缺失值总结前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键...
  • pandas缺失值

    2021-03-30 08:22:49
    文章目录pandas缺失值1、选择缺失值的方法:掩码和标签值2、pandas的缺失值3、None:python中的None对象4、NaN:数据类型的缺失值5、NaN和None的差异pandas处理缺失值 pandas缺失值 1、选择缺失值的方法:掩码和标签...
  • 1.Pandas缺失值的表征方式及运算处理规则 2.如何发现缺失值 3.如何对缺失值进行丢弃处理 4.如何对缺失值进行填充处理 现实中的数据,往往不如我们在例子中演示的那般干净、整齐,经常会出现数据缺失的现象,今天...
  • 1、pandas缺失值处理 import numpy as np import pandas as pd from pandas import Series,DataFrame df3 = DataFrame([ [Tom,np.nan,456.67,M], [Merry,34,345.56,np.nan], [np.nan,np.nan,np.nan,np.nan...
  • pandas - 缺失值处理

    千次阅读 2019-03-11 17:31:59
    学习目标 说明Pandas的缺失值类型 ... 应用:对电影数据进行缺失值处理 1 电影数据文件获取 # 读取电影数据 movie = pd.read_csv("./data.csv") 2 缺失值的处理逻辑 对于NaN的数据,在pandas...
  • 目录 缺失值 缺失值的判定 pd.isnull() pd.notnull() 缺失值的处理 pd.dropna() pd.drop_duplicates() pd.fillna() 异常值 异常值处理 缺失值 缺失值的判定 pd.isnull() pd.notnull() 错误筛选 缺失值的处理 ...
  • pandas缺失值处理

    千次阅读 2020-12-28 17:11:51
    pandas缺失值处理前言一、isnull()二、notnull()三、dropna()四、fillna()总结 前言 当我们在处理数据时,总会遇到数值缺失的问题,pandas在处理缺失值的方面提供了很全面的方法,主要包括:isnull()——找出缺失...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,598
精华内容 11,439
关键字:

pandas缺失值处理