pandas处理数据例子
2016-03-30 21:50
381 查看
API : pandas api
import pandas as pd import os import numpy as np # apply适用的函数,处理每个group def add_prop(group): births = group.births.astype(float) group['prop'] = births / births.sum() return group # top1000 def top1000(group): return group.sort_values(by="births",ascending=False)[:1000] if __name__ == "__main__": years = range(1880,2011) names = ["name","sex","births"] pieces = [] # read sequence file for year in years: path = "names/yob{year}.txt".format(year=year) if os.path.exists(path): print "begin to read {path}".format(path=path) else: print "{path} does not exists".format(path=path) continue # 读取数据 frame = pd.read_table(path,names=names,sep=',') frame['years'] = year pieces.append(frame) names = pd.concat(pieces,ignore_index=True) #print names[:10] #数据归总========================= total_births = names.pivot_table("births",index="years",columns="sex",aggfunc=sum) total_births.plot(title="births") #print total_births grouped = names.groupby(['years','sex']).size().unstack() #print grouped #apply # group函数以及apply配合使用 names = grouped = names.groupby(['years','sex']).apply(add_prop) print names[:10] ## verify print np.allclose(names.groupby(['years','sex']).prop.sum(),1) ## every year top 1000 grouped = names.groupby(['years','sex']) top1000 = grouped.apply(top1000) #print top1000.ix[top1000['years']==2000] print top1000.ix[top1000['years']==2000]
相关文章推荐
- Leetcode 49. Group Anagrams
- 【Java】【 Android】中的引用分类和使用
- 《淘宝技术这十年》
- Xcode 7.3编译的cocos2d-x程序崩溃问题
- Struts2和Spring3.2 整合时。Struts2 Action 无法通过get,set方式获取前台form传的值
- UVa 1584 - Circular Sequence
- 2016年3月26日作业
- HDOJ 2050 折线分割平面
- springMVC的简单配置
- PHP字符串 集合的相关函数
- iOS设计中多线程的简单介绍
- 总结三
- 02百思不得姐设置TabBar
- QT版DomainName软件导出BUG
- 几种导航条菜单制作总结-笔记3.30
- Excel表格导入数据库工具类
- 图像质量的客观评估指标PSNR与SSIM
- 页、物理块和页表
- 求四个数的最大公约数
- Spring Ioc set注入