import pandas as P
import numpy as N
#Index处理
#制作index
#tuple1 = list(zip([1,2,3,4,5],[5,6,7,8,9]))
index = P.MultiIndex_fromtuples(tuple1,names = ['1st','2nd'])#在生成以tuple为基地的索引
时,同时生成层次1st,2nd
date = P.DataFrame(data,index = index,columns=['A','B'])
#列索引-行索引
data.stack()#这个其实还不是很清楚用法,不过先有个粗略印象,后期根据实际情况学习才能印象更深刻
#数据透视(我觉得这个名字翻译过来很不直观,叫数据重组比较容易理解)
data = P.DataFrame({'A':['a','b','c','d'],
'B':['QWE','WER','ERT','RTY'],
'C':['zxc','xcv','vbn','nm,'],
'D':N.random.randn(4),
'E':N.random.randn(4)
})
data.pivot_table(values = ['D'],index = ['A','B'],columns = ['C'])
通过以A,B列为两层索引,C列为列索引,D为值获得一个重新分类编排的数据
#时间序列制作
#index_date = P.date_range('20010101',periods = 1000,freq = 's')#以2001年1月1日算起1000
个秒的 单位
index_periods = P.period_range('2001Q1','2002Q2',periods = 'Q')
这个两个类型是可以转换的
index_periods.to_timestamp()
#category
#这个的讲解也是非常随意,按照我的理解,这个category是用来标记或者排序的一种数据类型,
#data = P.DataFram(N.random.randn(5,2),columns = ['id','raw_grade'])
data['grade'] = data['raw_grade'].astype('category')#实际上就是把raw_grade数据复制后改变
格式,这个时候grade的数据已经是一种可以修改的标记了
data.grade.cat.categories = ['aaa','bbb','ccc']#对应raw_grade每种分类,标记成其他分类
datta.sort_values(by = 'grade',ascending = False)#这个东西的作用有点微妙,需要用实例才能好好解释,我的理解是比如一个班的学生分数已经按照区间分好类了,然后再用category加一列,以区间分类的值为数据,将这些数据通过.cat.categories改写成所对应的学校,就可以将分数区间转化为学校分配的操作