pandas入门学习二
2017-04-14 18:13
253 查看
本文是学习《利用Python进行数据分析》的部分笔记,在这里感谢作者
DataFrame是一个表格型的数据结构,有列索引有行索引,每列的值可以不同。
一:dataFrame的创建:
1,最常用的是传入一个由等长列表或Numpy数组组成的字典:
通过类似字典标记的方式,或者属性的方式,可以将DataFrame的列获取为一个Series
将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配,如何赋值的是一个Series,就会精确匹配DataFrame的索引,所有的空位会被填上缺失值:
另一种常见的数据形式是嵌套字典
pop={'Nevada':{2001:2.4,2002:2.9},'Ohio':{2000:1.5,2001:1.7,2002:3.6}}外层字典的键作为列,内层键作为行索引:
frame3=DataFrame(pop)
frame3
Out[6]:
Nevada Ohio
2000 NaN 1.5
2001 2.4 1.7
2002 2.9 3.6也可以对结果转置
frame3.T
Out[7]:
2000 2001 2002
Nevada NaN 2.4 2.9
Ohio 1.5 1.7 3.6跟Series一样,values属性也会以二维数组形式返回DataFrame中的数据
frame3.values
Out[11]:
array([[ nan, 1.5],
[ 2.4, 1.7],
[ 2.9, 3.6]])二:索引对象
构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会转化为一个index:
obj=frame3.index
obj
Out[13]: Int64Index([2000, 2001, 2002], dtype='int64', name='year')Index对象是不能修改的,用户不能对其修改。
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 year 0 1.5 Ohio 2000 1 1.7 Ohio 2001 2 3.6 Ohio 2002 3 2.4 Nevada 2001 4 2.9 Nevada 2002如果指定了列序列,则DataFrame的列就会按照指定顺序进行排序:
DataFrame(data,columns=['year','state','pop']) year state pop 0 2000 Ohio 1.5 1 2001 Ohio 1.7 2 2002 Ohio 3.6 3 2001 Nevada 2.4 4 2002 Nevada 2.9跟Series一样,传入的列在数据中找不到,就会产生NA值
frame2=DataFrame(data,columns=['year','state','pop','debt'], ... index=['one','two','three','four','five']) >>> frame2 year state pop debt one 2000 Ohio 1.5 NaN two 2001 Ohio 1.7 NaN three 2002 Ohio 3.6 NaN four 2001 Nevada 2.4 NaN five 2002 Nevada 2.9 NaN
通过类似字典标记的方式,或者属性的方式,可以将DataFrame的列获取为一个Series
frame2['state'] Out[8]: one Ohio two Ohio three Ohio four Nevada five Nevada Name: state, dtype: object frame2.year Out[9]: one 2000 two 2001 three 2002 four 2001 five 2002 Name: year, dtype: int64行也可以通过位置或名称的方式进行获取,比如用索引字段ix
frame2.ix['three'] Out[10]: year 2002 state Ohio pop 3.6 debt NaN Name: three, dtype: object列可以通过赋值的方式进行修改,例如:我们可以给那个空的“debt”列赋上一个标量值或者一组值
frame2['debt']=16.5 frame2 Out[12]: year state pop debt one 2000 Ohio 1.5 16.5 two 2001 Ohio 1.7 16.5 three 2002 Ohio 3.6 16.5 four 2001 Nevada 2.4 16.5 five 2002 Nevada 2.9 16.5
frame2['debt']=np.arange(5) frame2 Out[16]: year state pop debt one 2000 Ohio 1.5 0 two 2001 Ohio 1.7 1 three 2002 Ohio 3.6 2 four 2001 Nevada 2.4 3 five 2002 Nevada 2.9 4
将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配,如何赋值的是一个Series,就会精确匹配DataFrame的索引,所有的空位会被填上缺失值:
var=Series([-1.2,-1.5,-1.7],index=['two','four','five'])
frame2['debt']=var frame2 Out[20]: year state pop debt one 2000 Ohio 1.5 NaN two 2001 Ohio 1.7 -1.2 three 2002 Ohio 3.6 NaN four 2001 Nevada 2.4 -1.5 five 2002 Nevada 2.9 -1.7为不存在的列赋值会创建一个新列,关键字del用于删除列
del frame2['eastern'] frame2.columns Out[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)
frame3
Out[6]:
Nevada Ohio
2000 NaN 1.5
2001 2.4 1.7
2002 2.9 3.6也可以对结果转置
frame3.T
Out[7]:
2000 2001 2002
Nevada NaN 2.4 2.9
Ohio 1.5 1.7 3.6跟Series一样,values属性也会以二维数组形式返回DataFrame中的数据
frame3.values
Out[11]:
array([[ nan, 1.5],
[ 2.4, 1.7],
[ 2.9, 3.6]])二:索引对象
构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会转化为一个index:
obj=frame3.index
obj
Out[13]: Int64Index([2000, 2001, 2002], dtype='int64', name='year')Index对象是不能修改的,用户不能对其修改。
相关文章推荐
- python学习笔记(二)——Pandas十分钟入门
- pandas入门学习五
- python学习笔记一(pandas入门)
- pandas入门学习六
- pandas入门学习
- Pandas入门学习
- pandas入门学习一
- 利用Pythonj进行数据分析学习笔记——第五章 pandas入门
- 轻松入门 学习 pandas
- pandas学习:简单入门数据的建立划分
- python数据分析pandas包入门学习(三)汇总和统计描述
- python数据分析pandas包入门学习(三)汇总和统计描述
- Pandas入门学习总结
- Python爬虫(入门+进阶)学习笔记 1-5 使用pandas保存豆瓣短评数据
- Java学习从入门到精通(转贴)
- Java学习从入门到精通[z]
- Java学习从入门到精通
- Java学习从入门到精通
- Java学习从入门到精通
- Struts学习傻瓜式入门篇