Pandas模块学习笔记4:缺失数据处理与层次化索引

1、缺失数据处理

(1)滤除缺失数据

frame.dropna()  //删除含有缺失值的行
frame.dropna(how='all') //删除所有值均为缺失值的行
frame.dropna(axis=1, how='all') //删除所有制均为缺失值的列
frame.dropna(thresh=3)  //显示非缺失值不少于3个的行

(2)补充缺失数据

frame.fillna(0)  //将缺失值填充为0
df.fillna(method='ffill', limit=2) //使用向下填充,限制最多向下填充2个
data.fillna(data.mean()) //将缺失值填充为均值
df.fillna({1: 0.5, 2: 100}) //使用字典填充,index =1的行缺失值填充为0.5,index =2的行缺失值填充为100

 

2、层次化索引

层次化索引(hierarchical indexing)是pandas的一项重要功能,它能在一个轴上拥有多个(两个以上)索引级别。抽象点说,它使能以低维度形式处理高维度数据。

frame= Series(  np.random.randn(10),
                index=[['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'd', 'd'],
                     [1, 2, 3, 1, 2, 3, 1, 2, 2, 3]]   ) 
frame['b':'c'] //取出从index ='b'到index ='c'的所有行(包括c),即b1,b2,b3,b1,c2
frame[:, 2]   //选取第一层所有,第二层的index=2,即a2,b2,c2,d2

frame.unstack(level=0)   //以外层(第0层)abcd为列索引,反堆叠
frame.unstack(level=1)   //以内层(第1层)123为列索引,反堆叠
frame.unstack().stack()  //堆叠

 

posted @ 2021-01-20 00:43  venko  阅读(109)  评论(0)    收藏  举报