Python语言pandas包关于None和NaN值的处理(一)

By sto at 2019-03-19 • 0人收藏 • 47人看过

1 空值填充


>>> import pandas as pd
>>> import numpy as np
>>> se1 = pd.Series(['hello', None, 'Python',np.nan , 100, 1.01])
>>> se1
0     hello
1      None
2    Python
3       NaN
4       100
5      1.01
dtype: object
>>> se1.isnull()
0    False
1     True
2    False
3     True
4    False
5    False
dtype: bool
>>> se1.notnull()
0     True
1    False
2     True
3    False
4     True
5     True
dtype: bool

2 空值过滤


2.1 过滤含空值的序列

>>> se1.dropna()
0     hello
2    Python
4       100
5      1.01
dtype: object
>>> se1[se1.notnull()]
0     hello
2    Python
4       100
5      1.01
dtype: object


2.2 过滤含空值的行和列

>>> from numpy import nan as NA
>>> 
>>> data = pd.DataFrame([['aaa', 70, 0.3], ['bbb', NA, NA],  [NA, NA, NA], [NA, 89, 0.2]])
>>> data
     0     1    2
0  aaa  70.0  0.3
1  bbb   NaN  NaN
2  NaN   NaN  NaN
3  NaN  89.0  0.2
>>> data.dropna()
     0     1    2
0  aaa  70.0  0.3


2.3 过滤全是空值的行 

>>> data.dropna(how='all')
     0     1    2
0  aaa  70.0  0.3
1  bbb   NaN  NaN
3  NaN  89.0  0.2

2.4 过滤全是空值的列


>>> data.dropna(axis=1, how='all')
     0     1    2
0  aaa  70.0  0.3
1  bbb   NaN  NaN
2  NaN   NaN  NaN
3  NaN  89.0  0.2


2.5 过滤行列中非空值小于thresh的行或列

>>> data.dropna(thresh=2)
     0     1    2
0  aaa  70.0  0.3
3  NaN  89.0  0.2
>>> data.dropna(axis=1, thresh=2)
     0     1    2
0  aaa  70.0  0.3
1  bbb   NaN  NaN
2  NaN   NaN  NaN
3  NaN  89.0  0.2



登录后方可回帖

信息栏
数据人网是数据人学习、交流和分享的平台,专注于从数据中学习,努力发觉数据之洞见,积极利用数据之价值
Loading...