在 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