您的位置:首页 > 编程语言 > Python开发

利用Python数据分析:pandas入门(二)

2017-02-12 22:02 666 查看
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
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 #可以把字典,等长的列表转换成一个 dataframe dataframe有行索引也有列的索引
DataFrame(data,columns=['year','state','pop']) #指定列的顺序,DataFrame就会按照指定的顺序进行排列
frame2 = DataFrame(data,columns=['year','state','pop','debt'],
index=['one','two','three','four','five'])
frame2 # 如果列找不到就会返回一个NAN 这里同样的可以将1~N-1的索引改成指定索引
frame2.columns # 返回列的信息
frame2['state'] #通过字典标记方式可以将dataframe的列获取为一个Series
frame2.year # 同上
frame2['state'].name # 返回的Series的name属性也是设置好的
frame2['state'].index.name
frame2.ix['three'] # 行可以通过为止或者名称的方式进行获取比如说使用索引的字段ix
frame2['debt'] = 16.5 # 给列进行赋值 比如给前面为空值的列进行赋值为16.5
frame2 # 对于dataframe的每一列都具有series的每一个功能
frame2['debt'] = np.arange(5.)
frame2
val = Series([-1.2,-1.5,-1.7],index=['two','four','five'])
frame2['debt'] = val #将Series赋值的时候能够精确的匹配Dataframe的索引 列表或者数组赋值则需要长度匹配
frame2
frame2['eastern'] = frame2.state =='Ohio' # 给不存在的列进行赋值就会出现一个新的列
# 这里的 frame2.state =='Ohio' 返回的是一个布尔型的数组
del frame2['eastern'] #  使用del关键字进行删除列
frame2.columns
pop ={'Nevada':{2001:2.4,2002:2.9},
'Ohio':{2000:1.5,2001:1.7,2002:3.6}} #这是一个嵌套字典
frame3 = DataFrame(pop)# 嵌套字典转成Dataframe的时候外层的键作为列内层的键作为索引
frame3
frame3.T#也可以对结果进行转置
DataFrame(pop,index=[2001,2002,2003])#内层字典的键会被合并排序形成最终的索引,如果显示指定则不会
pdata ={'Ohio':frame3['Ohio'][:-1],
'Nevada':frame3['Nevada'][:2]
} #由Series组成的字典
DataFrame(pdata)
frame3.index.name = 'year' # 设置索引的名字
frame3.columns.name= 'state'#设置列的名字
frame3
frame3.values #以二维的ndarray形式返回Dataframe中的数据
frame2.values #数据类型不同就会选择兼容所有数据的类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: