首页 > 编程语言 > 详细

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

时间:2015-12-15 22:47:38      阅读:706      评论: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 版权所有
打开技术之扣,分享程序人生!