pandas入门学习二
来源:互联网 发布:淘宝图片空间协议手机 编辑:程序博客网 时间:2024/05/21 10:48
本文是学习《利用Python进行数据分析》的部分笔记,在这里感谢作者
DataFrame是一个表格型的数据结构,有列索引有行索引,每列的值可以不同。
一:dataFrame的创建:
1,最常用的是传入一个由等长列表或Numpy数组组成的字典:
>>> data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],... 'year':[2000,2001,2002,2001,2002],... 'pop':[1.5,1.7,3.6,2.4,2.9]}>>> frame = DataFrame(data)>>> frame pop state year0 1.5 Ohio 20001 1.7 Ohio 20012 3.6 Ohio 20023 2.4 Nevada 20014 2.9 Nevada 2002如果指定了列序列,则DataFrame的列就会按照指定顺序进行排序:
DataFrame(data,columns=['year','state','pop']) year state pop0 2000 Ohio 1.51 2001 Ohio 1.72 2002 Ohio 3.63 2001 Nevada 2.44 2002 Nevada 2.9跟Series一样,传入的列在数据中找不到,就会产生NA值
frame2=DataFrame(data,columns=['year','state','pop','debt'],... index=['one','two','three','four','five'])>>> frame2 year state pop debtone 2000 Ohio 1.5 NaNtwo 2001 Ohio 1.7 NaNthree 2002 Ohio 3.6 NaNfour 2001 Nevada 2.4 NaNfive 2002 Nevada 2.9 NaN
通过类似字典标记的方式,或者属性的方式,可以将DataFrame的列获取为一个Series
frame2['state']Out[8]: one Ohiotwo Ohiothree Ohiofour Nevadafive NevadaName: state, dtype: objectframe2.yearOut[9]: one 2000two 2001three 2002four 2001five 2002Name: year, dtype: int64行也可以通过位置或名称的方式进行获取,比如用索引字段ix
frame2.ix['three']Out[10]: year 2002state Ohiopop 3.6debt NaNName: three, dtype: object列可以通过赋值的方式进行修改,例如:我们可以给那个空的“debt”列赋上一个标量值或者一组值
frame2['debt']=16.5frame2Out[12]: year state pop debtone 2000 Ohio 1.5 16.5two 2001 Ohio 1.7 16.5three 2002 Ohio 3.6 16.5four 2001 Nevada 2.4 16.5five 2002 Nevada 2.9 16.5
frame2['debt']=np.arange(5)frame2Out[16]: year state pop debtone 2000 Ohio 1.5 0two 2001 Ohio 1.7 1three 2002 Ohio 3.6 2four 2001 Nevada 2.4 3five 2002 Nevada 2.9 4
将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配,如何赋值的是一个Series,就会精确匹配DataFrame的索引,所有的空位会被填上缺失值:
var=Series([-1.2,-1.5,-1.7],index=['two','four','five'])
frame2['debt']=varframe2Out[20]: year state pop debtone 2000 Ohio 1.5 NaNtwo 2001 Ohio 1.7 -1.2three 2002 Ohio 3.6 NaNfour 2001 Nevada 2.4 -1.5five 2002 Nevada 2.9 -1.7为不存在的列赋值会创建一个新列,关键字del用于删除列
del frame2['eastern']frame2.columnsOut[24]: Index(['year', 'state', 'pop', 'debt'], dtype='object')
另一种常见的数据形式是嵌套字典
pop={'Nevada':{2001:2.4,2002:2.9},'Ohio':{2000:1.5,2001:1.7,2002:3.6}}外层字典的键作为列,内层键作为行索引:
frame3=DataFrame(pop)frame3Out[6]: Nevada Ohio2000 NaN 1.52001 2.4 1.72002 2.9 3.6也可以对结果转置
frame3.TOut[7]: 2000 2001 2002Nevada NaN 2.4 2.9Ohio 1.5 1.7 3.6跟Series一样,values属性也会以二维数组形式返回DataFrame中的数据
frame3.valuesOut[11]: array([[ nan, 1.5], [ 2.4, 1.7], [ 2.9, 3.6]])二:索引对象
构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会转化为一个index:
obj=frame3.indexobjOut[13]: Int64Index([2000, 2001, 2002], dtype='int64', name='year')Index对象是不能修改的,用户不能对其修改。
0 0
- pandas入门学习二
- python数据分析pandas包入门学习(二)基本功能
- pandas入门学习一
- pandas入门学习四
- pandas入门学习五
- pandas入门学习六
- Pandas入门学习总结
- pandas入门学习
- 学习Pandas(二)
- pandas数据分析入门二
- Pandas学习笔记(二)
- python学习笔记(二)——Pandas十分钟入门
- Pandas学习笔记二(Pandas对象的基本方法)
- python pandas库的学习笔记二pandas的基本功能
- python学习笔记一(pandas入门)
- python机器学习库入门之pandas
- python 数据处理学习pandas之DataFrame(二)
- python学习笔记二(pandas基础)
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 6 理解ROS话题
- [NFC] 读羊城通卡片信息
- PAT乙级(Basic Level)练习题 >客似云来
- 骑驴找马的含义
- Android4.4 wpa_supplicant深入分析之wpa_supplicant初始化流程
- pandas入门学习二
- 关于mac上refreshing gradle building 无限加载问题
- 登录界面的实现
- HNOI2016 网络 [树链剖分]
- 二叉查找树和二叉堆的分析小结
- React Native之打包
- git 命令 (gnu interactive tools)
- Activity和Fragment之间的联系和区别
- twisted开发分布式任务调度爬虫