pandas“层次化索引对象”的多层索引,切片,stack
导入 (常规操作)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from pandas import DataFrame, Series
Series创建多层索引
index = [['一班', '一班', '一班', '二班', '二班','二班'], ['张三', '李四', '王五', '赵六', '田七', '孙八']]
data = np.random.randint(0, 150, size=6)
s = Series(index=index, data=data)
s
DataFrame创建多层索引
两种方式:隐式和显示
-
隐式构造
最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组index = [['一班', '一班', '一班', '二班', '二班','二班'], ['张三', '李四', '王五', '赵六', '田七', '孙八']] columns = [['期中', '期中', '期中', '期末', '期末', '期末'], ['语文', '数学', '英语', '语文', '数学', '英语']] data = np.random.randint(0, 150, size=(6,6)) df = DataFrame(data=data, index=index, columns=columns) df
2. 显示构造 (三种方式):
- 使用数组
- 使用tuple
- 使用乘积(product)
2.1) 使用数组
index = pd.MultiIndex.from_arrays([['一班', '一班', '一班', '二班', '二班','二班'], ['张三', '李四', '王五', '赵六', '田七', '孙八']])
columns = pd.MultiIndex.from_arrays([[