pandas基础:DataFrame(一)

import pandas as pd
#生成DataFrame
#利用python中的字典生成
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data) #行索引值默认为0开始计数,列索引为year,pop,state,输出顺序不固定
#显示DataFrame中的前几行
frame.head(6)#显示前6行
#固定列输出的顺序
pd.DataFrame(data,columns=['year','pop','state']) #表格会按照year,pop,state列顺序输出

#固定行索引和列索引名称
frame2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'],
                      index=['one', 'two', 'three', 'four',
                             'five', 'six'])#行索引和列索引固定生成DataFrame,其中debt列由于原数据中没有,该列全部显示为Nan
pop = {'Nevada': {2001: 2.4, 2002: 2.9},
       'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
frame3 = pd.DataFrame(pop) #字典中已经定义了行索引和列索引
pd.DataFrame(pop, index=[2001, 2002, 2003]) #固定DataFrame中行索引的顺序

#利用已有的DataFrame 生成DataFrame
pdata = {'Ohio': frame3['Ohio'][:-1],
         'Nevada': frame3['Nevada'][:2]} #利用到了切片
pd.DataFrame(pdata)
#转置
frame3.T

#列索引
frame2.columns
#行索引
frame2.index

#查找一列元素的方法
#方式一
frame2['state']
#方式二:
frame2.year
#方式三:
frame.loc['state']

#给类赋值方法
frame2['debt'] = 16.5   #debt列所有数值均为16.5
frame2['debt'] = np.arange(6.) #debt列数值为从0-5
val = pd.Series([-1.2, -1.5, -1.7], index=['two', 'four', 'five'])
frame2['debt'= = val  #使用Series给DataFrame的列赋值,未赋值的索引对应的值为Nan
#新增一列
frame2['eastern'] = frame2.state == 'Ohio' #新增一个bool值列,根据state列的值是否为‘Ohio’判断
#删除列
del frame2['eastern']

#设置行索引和列索引的名称
frame3.index.name = 'year'
frame3.columns.name = 'state'

#DataFrame的值
frame3.values #是一个np.array数组

  

posted @ 2017-12-14 11:10  tutu_python  阅读(171)  评论(0)    收藏  举报