import numpy as np
import pandas as pd
from pandas import series,dateframe
dd=dataframe(np.random.rand(4,2),columns=['data1','data2'],index=[['a','a','b','b'],['1','2','1','2']])
ddfrom_tuples()
population=[1233443,3322324,134566,57568768,13324234,5467577]
index=[('california',2000),('california',2010),('newyork',2000),('newyork',2010),('texas',2000),('texas',2010)]
mindex=pd.multiindex.from_tuples(index)
pop=dataframe(population,index=mindex)
pop
from_product()
mindex=pd.multiindex.from_product([['california','newyork','texas'],[2000,2010]])
pop2=dataframe(population,index=mindex)
pop2
3. 多層索引物件的索引與切片操作
1)series的操作
【重要】對於series來說,直接中括號與使用.loc()完全一樣,因此,推薦使用中括號索引和切片。
1))索引
pop['california']
2))切片
pop['california':'newyork']
california 2000 33871648
2010 37253956
new york 2000 18976457
2010 19378102
dtype: int64
pop['california':,2000]
california 33871648
new york 18976457
texas 20851820
dtype: int64
(2) 使用行索引需要用ix(),loc()等函式
pop.loc['california'] 0
20001233443
20103322324
(3)使用pd.indexslice
【極其重要】最好的方法是:pd.indexslice+.loc()方法
行索引:
idx=pd.indexslice
pop.loc[idx['california'],idx[:]] 0
20001233443
20103322324
列索引:
idx=pd.indexslice
pop.loc[idx[:2000],idx[:]]
4. 索引的堆(stack)
stack()
unstack() #【小技巧】使用unstack()的時候,level等於哪乙個,哪乙個就消失,出現在列裡。
ddd=pd.dataframe(np.random.rand(4,4),
columns=['0','1','2','3'],
index=['1','2','3','4'])
ddd
ddd.stack().unstack(level=0)
5. 聚合操作
【注意】
需要指定level
【小技巧】和unstack()相反,聚合的時候,level等於哪乙個,哪乙個就保留。
ddd1=ddd.stack()
ddd1
1 0 0.259452
1 0.410411
2 0.324261
3 0.506320
2 0 0.556484
1 0.674575
2 0.457297
3 0.145511
3 0 0.088966
1 0.402123
2 0.420650
3 0.481422
4 0 0.532261
1 0.812724
2 0.468918
3 0.170312
dtype: float64
ddd1.mean(level=0)
1 0.375111
2 0.458467
3 0.348290
4 0.496054
dtype: float64
pandas層次化索引
import pandas as pd import numpy as np from numpy import nan as na df pd.dataframe np.random.randn 7,3 index a b c d e f g columns q w t in 106 df out...
pandas 設定設定多層次索引
多層次索引 series 生成的excel格式 生成的html格式 對應的 import pandas as pd tup 34 21 4000 0003 34 21 4000 0004 36 15 1900 0011 index pd.multiindex.from tuples tup,name...
小呆學資料分析 pandas中的層次化索引
層次化索引應用場景 例子王小呆的女朋友李小妹是高三老師,高考結束可以查分後,李小妹讓班級裡面的同學將查分結果彙總給她,形式都是 張三.csv 李四.csv 王五.csv,內容如下 張三.csv 姓名,科目,分數 張三,英語,128 張三,語文,110 張三,數學,125 張三,理綜,238李四.cs...