学习内容是github上的Joyful-Pandas的第六章——缺少数据。
github链接为: https://github.com/datawhalechina/joyful-pandas
首先学习到的是缺少观测及其类型
先导入测试用到的数据。
df = pd.read_csv('data/table_missing.csv')
df.head()
缺失信息包括 isna() 和 notna() 两个方法。
df['Physics'].isna().head()
然后可以用求和看有多少个缺失值或者非缺失值。
df.isna().sum()
然后有三种缺失符号,分别是np.nan,None,NaT
其中的None可能会比较容易理解,跟C++语言的NULL,JAVA的null应该是一个意思。而nan就有意思了。它的原意是 Not a number。不是一个数,NaT跟nan类似,只不过是时间序列的缺失值。
不同点 None可以跟自己比较大小并且是相等的,而另外两个不相等。
二、缺失数据的运算与分组
1、加法和乘法规则
使用加法时,缺失值为0。如下图
使用乘法时,缺失值为1。
三、填充与剔除
fillna——值填充,意思就是直接填充进去一个值。不过又有前向和后向的方法,method='ffill’的时候为前向,method=‘backfill’的时候为后向填充。
四、插值
默认状态下,interpolate会对缺失的值进行线性插值
不过此时的插值是与索引无关的,如果想要和索引要关,method=‘index’。
当然还有很多高级的插值方法,因为博主刚入门,不太理解,就不写了。