精华内容
下载资源
问答
  • pandas缺失值填补之一

    2021-01-07 20:23:51
    假设我们有DataFrame数据data。 首先查看缺失值: ...feature_1有缺失值,而feature_2没有缺失值。我们把feature_1缺失的值使用同一行的feature_2的值填充。 index = data[data[feature_1].isnull()]

    假设我们有DataFrame数据data。
    首先查看缺失值:
    data.isnull().sum()
    isnull()是按照列统计的,获得的是bool值缺失值的地方是True,再使用sum()进行求和。就可以统计出每一列的缺失值个数。
    接下来,假设有两个特征feature_1 和 feature_2。feature_1有缺失值,而feature_2没有缺失值。我们把feature_1缺失的值使用同一行的feature_2的值填充。

    index = data[data[feature_1].isnull()].index
    data[feature_1][index] = data[feature_2][index]
    data.isnull().sum()
    
    展开全文
  • 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=...

    1.相关函数

    df.dropna()

    df.fillna()

    df.isnull()

    df.isna()

    2.相关概念

    空值:在pandas中的空值是""

    缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可

    3.函数具体解释

    DataFrame.dropna(axis=0how='any'thresh=Nonesubset=Noneinplace=False)

    函数作用:删除含有空值的行或列

    axis:维度,axis=0表示index行,axis=1表示columns列,默认为0

    how:"all"表示这一行或列中的元素全部缺失(为nan)才删除这一行或列,"any"表示这一行或列中只要有元素缺失,就删除这一行或列

    thresh:一行或一列中至少出现了thresh个才删除。

    subset:在某些列的子集中选择出现了缺失值的列删除,不在子集中的含有缺失值得列或行不会删除(有axis决定是行还是列)

    inplace:刷选过缺失值得新数据是存为副本还是直接在原数据上进行修改。

    例子:

    df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
                    "toy": [np.nan, 'Batmobile', 'Bullwhip'],
                      "born": [pd.NaT, pd.Timestamp("1940-04-25"),pd.NaT]})
    
    print df

    默认参数:删除行,只要有空值就会删除,不替换。

    print df.dropna()
    print df

    print "delete colums"
    print df.dropna(axis=1) #delete col
    

    print "所有值全为缺失值才删除"
    print df.dropna(how='all')

    print "至少出现过两个缺失值才删除"
    print df.dropna(thresh=2)

    print "删除这个subset中的含有缺失值的行或列"
    print df.dropna(subset=['name', 'born'])


    DataFrame.fillna(value=Nonemethod=Noneaxis=Noneinplace=Falselimit=Nonedowncast=None**kwargs)

    函数作用:填充缺失值

    value:需要用什么值去填充缺失值

    axis:确定填充维度,从行开始或是从列开始

    method:ffill:用缺失值前面的一个值代替缺失值,如果axis =1,那么就是横向的前面的值替换后面的缺失值,如果axis=0,那么则是上面的值替换下面的缺失值。backfill/bfill,缺失值后面的一个值代替前面的缺失值。注意这个参数不能与value同时出现

    limit:确定填充的个数,如果limit=2,则只填充两个缺失值。

    示例:

    df = pd.DataFrame([[np.nan, 2, np.nan, 0],
                      [3, 4, np.nan, 1],
                     [np.nan, np.nan, np.nan, 5],
                    [np.nan, 3, np.nan, 4]],
                     columns=list('ABCD'))
    
    print df
    
    print "横向用缺失值前面的值替换缺失值"
    print df.fillna(axis=1,method='ffill')
    
    print "纵向用缺失值上面的值替换缺失值"
    print df.fillna(axis=0,method='ffill')

    print df.fillna(0)

    不同的列用不同的值填充:


    对每列出现的替换值有次数限制,此处限制为一次


    DataFrame.isna()

    判断是不是缺失值:


    isnull同上。

    替换空值:

    df = pd.DataFrame([[np.nan, 2, np.nan, 0],
                      [3, 4, "", 1],
                     [np.nan, np.nan, np.nan, 5],
                    [np.nan, 3, "", 4]],
                     columns=list('ABCD'))
    
    print df

    如上,缺失值是NAN,空值是没有显示。

    替换空值代码:需要把含有空值的那一列提出来单独处理,然后在放进去就好。

    clean_z = df['C'].fillna(0)
    clean_z[clean_z==''] = 'hello'
    df['C'] = clean_z
    print df
    

    展开全文
  • 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 缺失值填充的方法

    千次阅读 2019-11-10 19:32:10
    像Age这样的重要变量,有20%左右的缺失值,我们可以考虑用中位值来填补。-- 填补缺失值 我们一般不提倡去掉带有缺失值的行,因为其他非缺失的变量可能提供有用的信息。-- 删除带缺失值的行 普通的方法(直接根据所...

    直接用代码来展示[基于泰坦尼克数据]

    • 真实数据往往某些变量会有缺失值。
    • 这里,cabin有超过70%以上的缺失值,我们可以考虑直接丢掉这个变量。 – 删除某一列数据
    • 像Age这样的重要变量,有20%左右的缺失值,我们可以考虑用中位值来填补。-- 填补缺失值
    • 我们一般不提倡去掉带有缺失值的行,因为其他非缺失的变量可能提供有用的信息。-- 删除带缺失值的行

    普通的方法(直接根据所需要的值来进行填充)

    # 重新载入原始数据
    titanic_df=pd.read_csv("titanic.csv")
    
    # 计算所有人年龄的均值
    age_median1 = titanic_df.Age.median()
    
    # 使用fillna填充缺失值,inplace=True表示在原数据titanic_df上直接进行修改
    titanic_df.Age.fillna(age_median1, inplace=True)
    
    # 查看Age列的统计值
    titanic_df.Age.describe()
    

    考虑性别因素,分别用男女乘客各自年龄的中位数来填补(需要建立索引)

    titanic_df = pd.read_csv("titanic.csv")
    # 分组计算男女年龄的中位数, 得到一个Series数据,索引为Sex
    age_median2 = titanic_df.groupby("Sex").Age.median()
    # 设置索引为Sex
    titanic_df.set_index("Sex",inplace=True)
    # 使用fillna填充缺失值,根据索引值填充
    titanic_df["Age"].fillna(age_median2,inplace=True)
    # 重置索引,即取消Sex索引
    titanic_df.reset_index(inplace=True)
    titanic_df["Age"].describe()
    

    同时考虑性别和舱位因素

    # 重新载入原始数据
    titanic_df=pd.read_csv("titanic.csv")
    
    # 分组计算不同舱位男女年龄的中位数, 得到一个Series数据,索引为Pclass,Sex
    age_median3 = titanic_df.groupby(['Pclass', 'Sex']).Age.median()
    
    # 设置Pclass, Sex为索引, inplace=True表示在原数据titanic_df上直接进行修改
    titanic_df.set_index(['Pclass','Sex'], inplace=True)
    # 使用fillna填充缺失值,根据索引值填充
    titanic_df.Age.fillna(age_median3, inplace=True)
    # 重置索引,即取消Pclass,Sex索引
    titanic_df.reset_index(inplace=True)
    
    # 查看Age列的统计值
    titanic_df.Age.describe()
    
    展开全文
  • pandas填补缺失值的方法

    千次阅读 2020-02-17 09:12:50
    pandas填补缺失值的方法 在处理数据的过程中,经常会遇到原数据部分内容的缺失,为了保证我们最终数据统计结果的正确性,通常我们有两种处理方式,第一种就是删除掉这些部分缺失的数据;第二种就是填补这些缺失的...
  • pandas缺失值处理

    2018-05-26 11:10:00
    为了更容易地检测缺失值(以及跨越不同的数组dtype),Pandas提供了isnull()和notnull()函数,它们也是Series和DataFrame对象的方法 - 示例1 import pandas as pd import numpy as np df = pd.DataFrame(np....
  • values = {"Longitude":114.154861,"Latitude":22.331879} data = data.fillna(value=values)
  • 使用的pandas版本 使用pandas读取数据 import pandas as pd path = 'D:/Desktop' data = pd.read_excel...使用众数填补缺失值 data['男smoke'].fillna(data['男smoke'].mode(), inplace=True) 你会发现这个函
  • 现实生活中的数据是非常杂乱的,其中缺失值也是非常常见的,对于缺失值的存在可能会影响到后期的数据分析或挖掘工作,那么我们该如何处理这些缺失值呢?常用的有三大类方法,即删除法、填补法和插值法。
  • 在实际应用中对于数据进行分析的时候,经常能看见缺失值,下面来介绍一下如何利用pandas来处理缺失值。常见的缺失值处理方式有,过滤、填充。 缺失值的判断 pandas使用浮点值NaN(Not a Number)表示浮点数和非浮点...
  • pandas dataframe缺失值(np.nan)处理:识别缺失情况、删除、0值填补、均值填补、中位数填补、加缺失标签、插值填充详解及实例 isnull()、natna()、isna()、fillna()、dropna()、interpolate() 现实世界中的...
  • pandas:填充缺失值

    万次阅读 多人点赞 2016-04-16 11:35:08
    pandas处理缺失值
  • 5、将姓名的缺失值进行填充 6、将清洗好的数据保存到指定excel中 原始数据: 最后输出数据: 处理步骤: 1、读取数据: 2、删除全是空值的列 3、删除全是空值的行 4、将分数列值为NAN(空值...
  • 如何用pandas处理缺失值

    千次阅读 2020-03-26 18:07:10
    缺失值的判断 缺失值在统计分析中经常被用到,在R语言中,is.na()、is.nan()和is.infinite()可分别...另外,pandas中使用df.isnull()或者df.isna()来判断是否为缺失值。 将含有NaN的行或列去掉 在pandas中可以...
  • pandas处理缺失值

    千次阅读 2018-02-07 14:30:07
    pandas 用 nan 表示缺失值,可以用 isnull() 检测 In [1]: import pandas as pd In [2]: import numpy as np In [3]: string_data = pd.Series(['aardvark', 'artichoke', np.nan, 'avocado']) In [4]: string_...
  • Pandas缺失值填充

    千次阅读 2019-01-23 16:10:12
    在写例子的时候用到了缺失值的填充,于是想用一下method这个参数传入’ffill’来实现. 但是发现,这个填充方法并不全如我意. 仔细实验后发现,这其中有些需要注意的点. fill_test = Series([111, 222, 533, 644, 299], ...
  • 对于两端缺失数据使用前后填充,对于中间数据使用线性插值(可替换) import numpy as np import pandas as pd from scipy.interpolate import interp1d df = pd.read_excel('data.xlsx') df['城市'].fillna...
  • 3.6 Pandas缺失值处理 如何进行缺失值处理 两种思路 删除缺失值 填补缺失值 缺失值处理实例 3.6.1 如何处理nan 3.6.2 缺失值处理实例 3.6.1 如何处理NaN 判断数据中是否存在NaN pd.isnull(df)—返回...
  • pandas填充缺失值

    2020-04-20 08:20:18
    关于NaN -在能够使用大型数据集训练学习算法之前,我们通常需要先清理数据, 也就是说,我们需要通过某个方法...Pandas 会为缺少的分配 NaN 。 创建一个具有NaN值得 Data Frame 1 2 3 4 5 6 7 8 9 10 11 12 1...
  • pandas来做csv的缺失值处理时候发现奇怪BUG,就是excel打开csv文件,明明有的格子没有任何东西,当然,我就想到用pandas的dropna()或者fillna()来处理缺失值。但是pandas读取csv文件后发现那个空的地方isnull()...
  • 缺失值处理缺失值寻找空值数据统计空缺值丢弃缺失值填充缺失值固定值填充   博客文章内需要的文件: 文件   大家在学习这一部分后,下载文件后,先将文件导入 import numpy as np import pandas as pd grade =...
  • pandas处理NaN缺失值

    千次阅读 2020-11-06 22:11:06
    缺失值处理 两种方法: 删除含有缺失值的样本 替换/插补 处理缺失值为NaN 先判断数据中是否存在NaN,通过下面两个方法中任意一个 pd.isnull(dataframe) # dataframe为数据 如果数据中存在NaN返回True,如果没有就返回...
  • Pandas数据对象中的缺失值表示为NaN。 import pandas as pd # 读取杭州天气文件 df = pd.read_csv("E:/Data/practice/hz_weather.csv") # 数据透视表 df1 = pd.pivot_table(df, index=['天气'], colu...
  • 利用scipy.interpolate.gird实现相关特征缺失值插值填补
  • 文章目录填补缺失值1、导入相关库2、创建数据3、利用Pandas填补数据4、sklearn库填补5、利用模型预测 填补缺失值 1、导入相关库 import pandas as pd import numpy as np from sklearn.impute import ...
  • 使用pandas缺失值进行填充处理

    千次阅读 2018-11-06 15:33:43
    对dataframe数据进行缺失值处理可以使用下面的方法处理。 train = train.fillna({'column_name': 'new_value'}) 把column_name的缺失值替换为new_value。...以上就是对使用pandas缺失值进行填充处理的认识。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,643
精华内容 1,057
关键字:

pandas缺失值填补