(1)方法一:使用pandas.multiindex.from_arrays()
in [25]: pd.multiindex.from_arrays([['a', 'a', 'b', 'b'],[1, 2, 1, 2]])
out[25]:
multiindex(levels=[['a', 'b'], [1, 2]],
labels=[[0, 0, 1, 1], [0, 1, 0, 1]])
上例中,多級索引的對應關係是:
a 1
2b 1
2
通俗的說就是a1,a2和b1,b2。
(2)方法2:使用pd.multiindex.from_tuples()
in [26]: pd.multiindex.from_tuples([('a', 1),('a', 2),('b', 1),('b', 2)])
out[26]:
multiindex(levels=[['a', 'b'], [1, 2]],
labels=[[0, 0, 1, 1], [0, 1, 0, 1]])
(3)上面兩種方法都很煩,最簡單的方法是使用笛卡爾乘積:pd.multiindex.from_product()
in [27]: pd.multiindex.from_product([['a', 'b'], [1, 2]])
out[27]:
multiindex(levels=[['a', 'b'], [1, 2]],
labels=[[0, 0, 1, 1], [0, 1, 0, 1]])
還可以為建立的索引指定名稱
in [28]: pop
out[28]:
廣東 2017 3387964
2018 658964
廣西 2017 458752
2018 698256
湖南 2017 125874
2018 658963
dtype: int64
in [29]: pop.index.names = [ '省份','年份']
in [30]: pop
out[30]:
省份 年份
廣東 2017 3387964
2018 658964
廣西 2017 458752
2018 698256
湖南 2017 125874
2018 658963
dtype: int64
既然行索引可以有多級的,那麼,自然而然地,列也有多級索引。下面我們建立乙個多行多列的索引。舉例如下:
in [33]: index = pd.multiindex.from_product([['廣東', '廣西'], [2017, 2018]], n
...: ames=['province', 'year'])
in [34]: column = pd.multiindex.from_product([['it行業','製造業'], ['軟體','硬
...: 件']], names=['行業', '崗位'])
我們模擬一組資料:
in [41]: data = np.random.randint(100,2000,size=(4,4))
in [42]: industry_data = pd.dataframe(data, index=index,colum
in [43]: industry_data
out[43]:
行業 it行業 製造業
崗位 軟體 硬體 軟體 硬體
province year
廣東 2017 1632 847 200 1495
2018 176 1179 718 973
廣西 2017 1995 1973 1096 1111
2018 1209 668 1128 1330
pandas中的多級index操作
在pandas中可以為series和dataframe設定多個index,也就是說可以有多級index和column。這樣可以對pandas的操作更加靈活。import numpy as np import pandas as pd from pandas import series,datafra...
pandas建立多重索引的幾種方式
使用pandas建立多重索引的方式有很多,下面舉出常見的幾種 1 pd.multiindex.from tuples方法 import pandas as pd import numpy as np arrays bar bar baz baz foo foo qux qux one two one...
pandas 01 Series 的幾種建立方法
pandas.series 的幾種建立方法。import numpy as np import pandas as pd 使用乙個列表生成乙個series s1 pd.series 1,2,3,4 print s1 0 1 1 2 2 3 3 4 dtype int64 返回所有的索引 print ...