美文网首页
Series第五讲 缺失值处理

Series第五讲 缺失值处理

作者: butters001 | 来源:发表于2020-09-19 13:49 被阅读0次

Series第五讲 缺失值处理

本节课将讲解如何处理pandas里的缺失值

缺失值处理

  • Series.fillnan()
  • Series.backfill()
  • Series.bfill()
  • Series.pad()
  • Series.ffill()
  • Series.dropnan()
  • Series.interpolate()
  • Series.isna()
  • Series.isnull()
  • Series.notna()
  • Series.notnall()
  • Series.replace()

详细介绍

先来创建一个Series

In [4]: s = pd.Series([1, 2, 3, None, 5, None, None, None, 9])                  

In [5]: s                                                                       
Out[5]: 
0    1.0
1    2.0
2    3.0
3    NaN
4    5.0
5    NaN
6    NaN
7    NaN
8    9.0
dtype: float64

1. Series.fillna()

Series.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

用特殊的method填充缺失值

常用参数介绍:
  • values:calar, dict, Series, or DataFrame 【填充nan的值,不能是list】。
  • method:{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None 【填充方法,用前/后面的值进行填充】
  • axis:{0 or ‘index’} 【前后或上下填充】
  • limit:int, default None 【连续填充的值的数量】
In [6]: s.fillna(0)                                                             
Out[6]: 
0    1.0
1    2.0
2    3.0
3    0.0
4    5.0
5    0.0
6    0.0
7    0.0
8    9.0
dtype: float64

In [7]: s.fillna(0, limit=2)                                                    
Out[7]: 
0    1.0
1    2.0
2    3.0
3    0.0
4    5.0
5    0.0
6    NaN
7    NaN
8    9.0
dtype: float64

# 只对nan值进行填充
In [8]: s.fillna({0: 'A', 3: 'A'})                                              
Out[8]: 
0      1
1      2
2      3
3      A
4      5
5    NaN
6    NaN
7    NaN
8      9
dtype: object

# 用nan后面的值进行填充
In [11]: s.fillna(method='bfill')                                               
Out[11]: 
0    1.0
1    2.0
2    3.0
3    5.0
4    5.0
5    9.0
6    9.0
7    9.0
8    9.0
dtype: float64

2. Series.backfill()

Series.backfill(axis=None, inplace=False, limit=None, downcast=None)

等于 method='bfill' 的 fillna 方法

3. Series.bfill()

等于 method='bfill' 的 fillna 方法

4. Series.pad()

Series.pad(axis=None, inplace=False, limit=None, downcast=None)

等于 method='ffill' 的 fillna 方法

5. Series.ffill()

Series.ffill(axis=None, inplace=False, limit=None, downcast=None)

等于 method='ffill' 的 fillna 方法

6. Series.dropna()

Series.dropna(axis=0, inplace=False, how=None)

删除缺失值

In [13]: s.dropna()                                                             
Out[13]: 
0    1.0
1    2.0
2    3.0
4    5.0
8    9.0
dtype: float64

7. Series.interpolate()

Series.interpolate(method='linear', axis=0, limit=None, inplace=False, limit_direction=None, limit_area=None, downcast=None, **kwargs)

进行插值,默认线性方法

In [15]: s.interpolate()                                                        
Out[15]: 
0    1.0
1    2.0
2    3.0
3    4.0
4    5.0
5    6.0
6    7.0
7    8.0
8    9.0
dtype: float64

8. Series.isna()

Series.isna()

检测缺失值,缺失值为True,非缺失值为False

In [16]: s.isna()                                                               
Out[16]: 
0    False
1    False
2    False
3     True
4    False
5     True
6     True
7     True
8    False
dtype: bool

9. Series.isnull()

Series.isnull()

检测缺失值,同 isna()

10. Series.notna()

Series.notna()

检测非缺失值,和 isna() 方法相反,非缺失值为True,缺失值为False

In [17]: s.notna()                                                              
Out[17]: 
0     True
1     True
2     True
3    False
4     True
5    False
6    False
7    False
8     True
dtype: bool

11. Series.notnull()

Series.notnull()

同 notna()

12. Series.replace()

Series.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')

将 to_replace 匹配到的值替换成 value 参数值

常用参数介绍:
  • to_replace:str, regex, list, dict, Series, int, float, or None 【如何找到将被替换的值】。
  • values:calar, dict, list, str, regex, default None
  • regex:bool or same types as to_replace, default False 【是否将to_replace和或value解释为正则表达式。如果为True则to_replace必须为字符串。或者,这可以是正则表达式或正则表达式的列表,字典或数组,在这种情况下 to_replace必须为None】
  • method:{‘pad’, ‘ffill’, ‘bfill’, None} 【当 to_replace 是 a scalar, list or tuple 且 value 为 None】
# 用A替换值1
In [20]: s.replace(1, 'A')                                                      
Out[20]: 
0      A
1      2
2      3
3    NaN
4      5
5    NaN
6    NaN
7    NaN
8      9
dtype: object

# 值1和5用A替换
In [22]: s.replace({1: 'A', 5: 'A'})                                            
Out[22]: 
0      A
1      2
2      3
3    NaN
4      A
5    NaN
6    NaN
7    NaN
8      9
dtype: object

# 值1,2,3用A替换
In [23]: s.replace([1, 2, 3], 'A')                                              
Out[23]: 
0      A
1      A
2      A
3    NaN
4      5
5    NaN
6    NaN
7    NaN
8      9
dtype: object

# 正则
In [49]: s.apply(str).replace(r'\d', 'A', regex=True)                           
Out[49]: 
0    A.A
1    A.A
2    A.A
3    nan
4    A.A
5    nan
6    nan
7    nan
8    A.A
dtype: object

周末也要继续 坚持 ✊ ✊ ✊!!!

相关文章

  • Series第五讲 缺失值处理

    Series第五讲 缺失值处理 本节课将讲解如何处理pandas里的缺失值 缺失值处理 Series.fillna...

  • 2020-03-31

    To be continued(自用) 今天在处理数据的时候,得到一个包含缺失值个数的series,想把其中缺失个...

  • 笨办法学分析[05]pandas常用操作(二)

    22.缺失值判断: s.isnull() isnull()方法可以对缺失值NaN值进行判断,返回对Series或D...

  • pandas数据分析库3~4

    8.3算术运算和对齐 目的:通过学习算术运算和对齐来掌握nan缺失值处理、DataFrame与Series的运算与...

  • Pandas_3 处理缺失值、数据透视表以及apply的用法

    1.处理缺失值 Pandas使用NaN(Not a Number)来表示缺失值 1.1判断是否存在缺失值以及缺失值...

  • Kaggle_House题目整理

    特征处理 缺失比例: 属性值含义(不是全部) 缺失值处理 缺失量比较多的PoolQC、MiscFeature、Al...

  • 【python】数据清洗

    1.处理缺失值 判断是否含缺失值/统计缺失值 筛选所有含缺失值的表格 删除含缺失值的数据 用新值填充空值 对应值替...

  • 机器学习 - 特征工程

    数据处理 缺失值处理行数据缺失过多,用户区分度就会降低,列数据缺失过多会导致建模存在偏差fillna:填充缺失值;...

  • 5.data_preprocessing_and_feature

    1.数据预处理与特征工程 1.1处理缺失值 1.1.1 直接删除缺失值多的样本和特征 1.1.2 计算缺失值与填充...

  • 07 Pandas对缺失值的处理

    [toc] 07Pandas对缺失值的处理 Pandas使用这些函数处理缺失值: isnull和notnull:检...

网友评论

      本文标题:Series第五讲 缺失值处理

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