数据挖掘 pandas基础入门之缺失值处理

在 pandas 中,使用nan来代替缺失值,这些值将默认不会包含在计算中。

import pandas
import numpy

# 通过传递一个 numpyarray,时间索引以及列标签来创建一个DataFrame:
dates = pandas.date_range("20180509", periods=6)
df = pandas.DataFrame(numpy.random.randn(6, 4), index=dates, columns=list('ABCD'))
print("时间索引以及列标签来创建一个DataFrame:", df, sep="\n")

# reindex()方法可以对指定轴上的索引进行改变/增加/删除操作,这将返回原始数据的一个拷贝。
df_c = df.reindex(index=dates[0:4], columns=list(df.columns) + ['E'])
df_c.loc[dates[0]:dates[1], "E"] = 1
print("显示NaN", df_c, sep="\n")

# 去掉包含的缺失值的行
print("去除缺省行: ", df_c.dropna(how="any"), sep="\n")  # dropna()不改变源数集,返回去除后的结果集

# 对缺失值进行填充
print("缺失值以5填充", df_c.fillna(value=5), sep="\n")

# 对数据进行布尔填充
print("对缺失值进行布尔填充", pandas.isnull(df_c), sep="\n")
"E:\Python 3.6.2\python.exe" F:/PycharmProjects/test.py
时间索引以及列标签来创建一个DataFrame:
                   A         B         C         D
2018-05-09  1.017714 -0.156807  1.529034 -1.553297
2018-05-10  0.879492  0.055659 -0.161884 -0.793594
2018-05-11  0.643614  0.721887 -0.060474  2.197343
2018-05-12 -1.224674  0.001965  0.342837  1.228428
2018-05-13 -0.603410  0.159824 -0.449570  2.090540
2018-05-14 -1.824944 -0.732760 -0.052949 -0.746081
显示NaN
                   A         B         C         D    E
2018-05-09  1.017714 -0.156807  1.529034 -1.553297  1.0
2018-05-10  0.879492  0.055659 -0.161884 -0.793594  1.0
2018-05-11  0.643614  0.721887 -0.060474  2.197343  NaN
2018-05-12 -1.224674  0.001965  0.342837  1.228428  NaN
去除缺省行: 
                   A         B         C         D    E
2018-05-09  1.017714 -0.156807  1.529034 -1.553297  1.0
2018-05-10  0.879492  0.055659 -0.161884 -0.793594  1.0
缺失值以5填充
                   A         B         C         D    E
2018-05-09  1.017714 -0.156807  1.529034 -1.553297  1.0
2018-05-10  0.879492  0.055659 -0.161884 -0.793594  1.0
2018-05-11  0.643614  0.721887 -0.060474  2.197343  5.0
2018-05-12 -1.224674  0.001965  0.342837  1.228428  5.0
对缺失值进行布尔填充
                A      B      C      D      E
2018-05-09  False  False  False  False  False
2018-05-10  False  False  False  False  False
2018-05-11  False  False  False  False   True
2018-05-12  False  False  False  False   True

Process finished with exit code 0

猜你喜欢

转载自my.oschina.net/gain/blog/1822848