DataFrame多层索引创建

在某些场景中,多层索引很有用。在pandas库中有直接设置多层索引的方法,也有读取多层索引数据的方法。

  • DataFrame多层索引设置方法1,直接构造
import pandas as pd
data = [[1,1,1],
        [2,2,2],
        [3,3,3]]
df=pd.DataFrame(data,columns=[['a','a','a'],['aa','bb','cc']])#注意小列表放在大列表里,小列表里的元素个数要一致
print(df)
# 结果
   a      
  aa bb cc
0  1  1  1
1  2  2  2
2  3  3  3
  • 方法2:使用方法pd.MultiIndex.from_tuples重新构造索引
import pandas as pd
data = [[1,1,1],
        [2,2,2],
        [3,3,3]]
columns=[('a','aa'),('a','bb'),('a','cc')]
df=pd.DataFrame(data)
df.columns = pd.MultiIndex.from_tuples(columns)
print(df)

以上方法构造的索引都是需要把一级索引个数和二级索引个数对应起来,麻烦。

  • 方法3:使用pd.MultiIndex.from_product,索引的一级索引写一次就可以
import pandas as pd
data = [[1,1,1],
        [2,2,2],
        [3,3,3]]

df=pd.DataFrame(data)
df.columns = pd.MultiIndex.from_product([['a'],df.columns])
print(df)
#结果
   a      
   0  1  2
0  1  1  1
1  2  2  2
2  3  3  3

以上方法也可以用于行索引,只需要把columns换成index就可以了。

你可能感兴趣的:(数据科学计算库,pandas,python)