Chapter5-1: pandas 数据结构介绍

来源:互联网 发布:怎么让手机网络变快 编辑:程序博客网 时间:2024/06/05 11:08
'''
Chapter5-1: pandas 数据结构介绍
索引:
一、 Series(序列数据)
1.生成Series:pd.Series(value,index),index 默认0123...
2.Series({'a':1})#传入字典数据生成序列     #定长的字典
3.isnull() notnull() 检测缺失值
4.数据对齐功能:对应index会对齐进行操作,只在一边的生成NAN
5.Series的索引可以通过赋值就地修改
二、DataFrame (表数据)
1.创建DataFrame: DataFrame(data) 其中data是字典数据,每个键的值是一个列表
2.frame.column==frame['column']#得到一个Series
3.可以按照编号输出某行frame.ix[行号]
4.通过赋值方式可以传入新的属性frame['newcolumn'],但是frame.newcolumn不可
5.frame['column'] = sdata 如果sdata是个序列数据,则根据sdata的index精确匹配插入,没有value的补NAN
6.del函数可以删除列  del frame['column']
7.嵌套字典{'a':{...},'b':{...}}
三、索引对象
1.index对象负责管理index和columns
2.index 对象不可修改,可以删除和增加,但是只是index对象的内容变了,数据本身没有变化
四.函数备忘


create at 2016-12-20
@author: Bigboy

'''

实践内容:

#-*- coding:utf-8 -*-from pandas import Series,DataFrame#1-------------------------------------------#Series obj = Series([3,4,5,6])print obj print obj.indexprint obj.valuesobj1 = Series([3,4,5,6],index=['a','b','c','d'])print obj1print obj1['d']print obj1[['c','d']]#注意[]内是个数组print obj1[obj1>3]print obj1*2print 'd' in obj1 #定长的字典'''out:0    31    42    53    6dtype: int64RangeIndex(start=0, stop=4, step=1)[3 4 5 6]a    3b    4c    5d    6dtype: int646c    5d    6dtype: int64b    4c    5d    6dtype: int64a     6b     8c    10d    12dtype: int64True'''#2-3-------------------------------------------------------------------------------#Series可以看做是定长的字典sdata = {'a':1,'b':2,'c':3}obj2 = Series(sdata)#传入字典,得到字典全部的值print obj2 sindex = ['a','b','d']obj3 = Series(sdata,sindex)#传入sindex中含有sdata中不存在,也能存到obj,但是对应的value是NANprint obj3print obj3.isnull()'''out:a    1b    2c    3dtype: int64a    1.0b    2.0d    NaNdtype: float64a    Falseb    Falsed     Truedtype: bool'''#5-------------------------------------------------------------------------------------obj2.index = ['TOM','BOB','EVE']print obj2'''out:TOM    1BOB    2EVE    3dtype: int64'''###================================================================================================================####DataFrame#1-2---------------------------------------------------------------------data = {'age':[1,2,3,4,5],        'year':[2005,2006,2004,2008,2018],        'name':['Bob','Tom','Tim','Cok','SN']        }frame = DataFrame(data)#自动加上序号print frameprint DataFrame(data,columns=['name'])#可以输入列属性按顺心排列print DataFrame(data,columns=['name'],index=[1,2,3,4,5])#还可以加入index参数print DataFrame(data,columns=['name','d'])#输入没有的属性得到一列NANprint frame.year#直接调用属性print frame['year']#按照属性值查找,返回的是一个Series'''out:   age name  year0    1  Bob  20051    2  Tom  20062    3  Tim  20043    4  Cok  20084    5   SN  2018  name0  Bob1  Tom2  Tim3  Cok4   SN  name  1  Bob2  Tom3  Tim4  Cok5   SN  name    d0  Bob  NaN1  Tom  NaN2  Tim  NaN3  Cok  NaN4   SN  NaN0    20051    20062    20043    20084    2018Name: year, dtype: int640    20051    20062    20043    20084    2018Name: year, dtype: int64'''#3-4------------------------------------------------------------------------------print frame.ix[2]frame['date'] = '1220'print frame'''out: age        3name     Timyear    2004Name: 2, dtype: object   age name  year  date0    1  Bob  2005  12201    2  Tom  2006  12202    3  Tim  2004  12203    4  Cok  2008  12204    5   SN  2018  1220'''#6------------------------------------------------------------------------------del frame['date']print frame'''out:   age name  year0    1  Bob  20051    2  Tom  20062    3  Tim  20043    4  Cok  20084    5   SN  2018'''print frame.ix[1]['name']#name列的第1个值print frame['age'][1]print frame.T#转置自身不变print frame'''out:Tom2         0     1     2     3     4age      1     2     3     4     5name   Bob   Tom   Tim   Cok    SNyear  2005  2006  2004  2008  2018   age name  year0    1  Bob  20051    2  Tom  20062    3  Tim  20043    4  Cok  20084    5   SN  2018'''#nndarray构造frameimport numpy as npdata = np.arange(16).reshape(4,4)frame2 = DataFrame(data)print frame2#12-----------------------------------------------------------------------index = frame2.indexindex =index.delete(1)print indexprint frame2for i in index:    print frame2.ix[i]

函数备忘:





0 0
原创粉丝点击