数据分层1之建立分层

import pandas as pd
import numpy as np

  

data1 =pd.read_excel("F:/分层数据.xlsx"
                    ,header=None)

  

#将Dataframe的某列转化为行索引,只能转化为 行 索引

data1.set_index([0,1]   #顺序可控制那列作为一级二级甚至三级等
               ,drop=False  #是否从列里删除,默认删除
               )

  

#多维列表法

pd.DataFrame(np.random.rand(8,4),index=[[1,1,1,1,2,2,2,2],[1,1,2,2,1,1,2,2]],columns=[["A","A","B","B"],[1,2,1,2]])

  

#笛卡尔积法(必须保证每一个层次的不同组之间长度相同)

col = pd.MultiIndex.from_product([["A","B"],[1,2]])
row = pd.MultiIndex.from_product([[1,2],[1,2,3,4]])
pd.DataFrame(np.random.rand(8,4),index=row,columns=col)

  

data2 = pd.read_excel("F:/分层数据.xlsx",skiprows=[0,1],header=None)
data3 = data2.set_index([0,1])
data3

  

col = pd.MultiIndex.from_product([["第一季度","第二季度","第三季度","第四季度"],["第一期","第二期","第三期"]])

  

data4 = pd.DataFrame(data3.values,columns=col,index=data3.index)

  

#拆除多级行索引入列

data4.reset_index(level=[0,1] #拆除哪一级入列,默认全部拆除
                 ,drop=False  #是否保留
                  ,inplace=False
                 )

  

#索引不同层级的命名

data4.index.names=["部门","分行"]
data4.columns.names=["季度","月份"]

  

posted @ 2020-01-16 22:37  数据骆驼  阅读(136)  评论(0)    收藏  举报