第三节中的三个示例。(ps:新开一篇是为了展现对例子的重视。)
3.1用特定于分组的值填充缺失值
对于缺失值的清理工作,可以用dropna进行删除,有时候需要进行填充(或者平滑化)。这时候用的是fillna。
#-*- encoding:utf-8 -*- import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt s = Series(np.random.randn(6)) s[::2] = np.nan print s,‘\n‘ print s.fillna(s.mean()),‘\n‘ #不是就地的,是产生一个副本 #假如需要对不同的分组填充不同的值。只需要groupby然后应用fillna即可。 states = [‘Ohio‘,‘New York‘,‘Vermont‘,‘Florida‘,‘Oregon‘,‘Nevada‘,‘California‘,‘Idaho‘] group_key = [‘East‘] * 4 + [‘West‘] * 4 data = Series(np.random.randn(8),index = states) data[[‘Vermont‘,‘Nevada‘,‘Idaho‘]] = np.nan print data,‘\n‘ print data.groupby(group_key).mean(),‘\n‘ #下面用均值填充NA fill_mean = lambda g:g.fillna(g.mean()) print data.groupby(group_key).apply(fill_mean),‘\n‘ #当然,可以自己定义填充值:我刚开始就是这么想的,用字典传入值即可 fill_values = {‘East‘:0.5,‘West‘:0.4} #注意下面的用法:注意g.name 是分组的名称 fill_func = lambda g:g.fillna(fill_values[g.name]) print data.groupby(group_key).apply(fill_func),‘\n‘ #看一下名字,第一列是分组名,第二列是函数调用后得到的结果,而这个结果也是分组名 p = lambda x: x.name print data.groupby(group_key).apply(p)
《利用python进行数据分析》读书笔记--第九章 数据聚合与分组运算(二)
原文:http://www.cnblogs.com/batteryhp/p/5049644.html