import numpy as np
import pandas as pd
from pandas import DataFrame, Series
columns =[['期中','期中','期中','期中','期末','期末','期末','期末'],['语文','数学','英语','综合','语文','数学','英语','综合']]
index =[['一班','一班','一班','一班','一班','二班','二班','二班','二班','二班'],['张三','李四','王五','赵六','田七','孙八','钱九','陈十','赵四','小明']]
data = np.random.randint(0,150, size=(10,8))
df = DataFrame(index=index, data=data, columns=columns)
df
期中
期末
语文
数学
英语
综合
语文
数学
英语
综合
一班
张三
61
68
113
53
17
111
96
24
李四
19
63
138
75
66
87
78
124
王五
5
140
50
141
111
107
78
95
赵六
40
30
26
35
139
100
71
122
田七
23
113
147
106
87
48
108
30
二班
孙八
107
20
65
112
19
38
73
34
钱九
138
135
77
10
3
92
79
30
陈十
24
9
110
95
103
49
19
108
赵四
3
125
22
134
10
112
100
73
小明
8
25
5
124
1
55
71
27
扩展:series也可以创建多层索引
# Series也可以创建多层索引
index =[['一班','一班','一班','一班','一班','二班','二班','二班','二班','二班'],['张三','李四','王五','赵六','田七','孙八','钱九','陈十','赵四','小明']]
data = np.random.randint(0,150, size=(10,))
s = Series(data=data, index=index)
s
index =[['一班','一班','一班','一班','一班','二班','二班','二班','二班','二班'],['张三','李四','王五','赵六','田七','孙八','钱九','陈十','赵四','小明']]
data = np.random.randint(0,150, size=(10,))
s = Series(data=data, index=index)
s
"""
一班 张三 123
李四 19
王五 117
赵六 32
田七 61
二班 孙八 123
钱九 90
陈十 38
赵四 114
小明 14
dtype: int32
"""
显示构造pd.MultiIndex创建多层索引
1.使用数组
columns = pd.MultiIndex.from_arrays([['期中','期中','期中','期中','期末','期末','期末','期末'],['语文','数学','英语','综合','语文','数学','英语','综合']])
index = pd.MultiIndex.from_arrays([['一班','一班','一班','一班','一班','二班','二班','二班','二班','二班'],['张三','李四','王五','赵六','田七','孙八','钱九','陈十','赵四','小明']])
data = np.random.randint(0,150, size=(10,8))
df = DataFrame(index=index, columns=columns, data=data)
df
期中
期末
语文
数学
英语
综合
语文
数学
英语
综合
一班
张三
6
65
46
42
19
70
46
140
李四
61
51
85
23
118
37
135
84
王五
146
46
142
23
115
83
7
59
赵六
91
69
41
7
55
144
148
85
田七
41
35
36
40
126
31
102
143
二班
孙八
132
147
15
126
59
97
62
43
钱九
130
148
99
60
111
126
86
4
陈十
32
73
129
40
73
75
60
86
赵四
104
56
95
130
79
70
49
27
小明
107
54
143
77
28
125
119
118
2.使用tuple
columns = pd.MultiIndex.from_tuples((('期中','语文'),('期中','英语'),('期中','数学'),('期中','综合'),('期末','语文'),('期末','英语'),('期末','数学'),('期末','综合')))
index =[['一班','一班','一班','一班','一班','二班','二班','二班','二班','二班'],['张三','李四','王五','赵六','田七','孙八','钱九','陈十','赵四','小明']]
data = np.random.randint(0,150, size=(10,8))
df = DataFrame(index=index, columns=columns, data=data)
df
期中
期末
语文
英语
数学
综合
语文
英语
数学
综合
一班
张三
40
128
63
109
58
92
127
108
李四
66
54
131
77
61
34
73
67
王五
64
69
102
114
34
15
68
145
赵六
64
0
54
48
122
133
85
9
田七
118
63
25
12
104
111
60
33
二班
孙八
60
39
67
30
74
29
133
124
钱九
94
1
61
74
143
145
74
111
陈十
148
39
112
45
137
51
128
144
赵四
131
132
24
74
29
52
71
39
小明
23
61
84
40
111
6
114
114
3.使用product(推荐使用)
columns = pd.MultiIndex.from_product([['期中','期末'],['语文','数学','英语','综合']])
index =[['一班','一班','一班','一班','一班','二班','二班','二班','二班','二班'],['张三','李四','王五','赵六','田七','孙八','钱九','陈十','赵四','小明']]
data = np.random.randint(0,150, size=(10,8))
df = DataFrame(index=index, columns=columns, data=data)
df