首页 > 编程语言 > 详细

《利用python进行数据分析》读书笔记--第九章 数据聚合与分组运算(二)

时间:2015-12-15 22:47:38      阅读:710      评论:0      收藏:0      [点我收藏+]

第三节中的三个示例。(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

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!