import pandas as pd
import os
os.chdir(r'C:\Users\Hans\Desktop\data_analysis')
df = pd.read_excel('pandas_multiindex.xls')
df.head()
|
日期 |
收盘 |
开盘 |
高 |
低 |
交易量 |
涨跌幅 |
公司 |
0 |
2020年5月27日 |
201.18 |
202.64 |
202.64 |
196.77 |
23.61M |
-0.0027 |
BABA |
1 |
2020年5月26日 |
201.72 |
205.96 |
206.69 |
201.16 |
28.68M |
0.0101 |
BABA |
2 |
2020年5月22日 |
199.70 |
203.23 |
204.88 |
198.99 |
51.98M |
-0.0587 |
BABA |
3 |
2020年5月21日 |
212.16 |
210.91 |
214.51 |
209.54 |
29.85M |
-0.0214 |
BABA |
4 |
2020年5月20日 |
216.79 |
220.12 |
221.10 |
210.78 |
38.32M |
-0.0019 |
BABA |
df['公司'].unique()
array(['BABA', 'JD', 'JSR', 'HR'], dtype=object)
s = df.groupby(['公司','日期'])['收盘'].mean()
s.head()
公司 日期
BABA 2020年4月28日 201.15
2020年4月29日 206.70
2020年4月30日 202.67
2020年5月11日 205.40
2020年5月12日 200.31
Name: 收盘, dtype: float64
s.index
MultiIndex(levels=[['BABA', 'HR', 'JD', 'JSR'], ['2020年4月28日', '2020年4月29日', '2020年4月30日', '2020年5月11日', '2020年5月12日', '2020年5月13日', '2020年5月14日', '2020年5月15日', '2020年5月18日', '2020年5月19日', '2020年5月1日', '2020年5月20日', '2020年5月21日', '2020年5月22日', '2020年5月25日', '2020年5月26日', '2020年5月27日', '2020年5月28日', '2020年5月4日', '2020年5月5日', '2020年5月6日', '2020年5月7日', '2020年5月8日']],
codes=[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]],
names=['公司', '日期'])
s.unstack()
日期 |
2020年4月28日 |
2020年4月29日 |
2020年4月30日 |
2020年5月11日 |
2020年5月12日 |
2020年5月13日 |
2020年5月14日 |
2020年5月15日 |
2020年5月18日 |
2020年5月19日 |
2020年5月1日 |
2020年5月20日 |
2020年5月21日 |
2020年5月22日 |
2020年5月25日 |
2020年5月26日 |
2020年5月27日 |
2020年5月28日 |
2020年5月4日 |
2020年5月5日 |
2020年5月6日 |
2020年5月7日 |
2020年5月8日 |
公司 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BABA |
201.15 |
206.70 |
202.67 |
205.40 |
200.31 |
199.46 |
201.30 |
203.68 |
215.28 |
217.20 |
194.48 |
216.79 |
212.16 |
199.7 |
NaN |
201.72 |
201.18 |
NaN |
191.15 |
195.02 |
195.17 |
196.49 |
201.19 |
HR |
80.04 |
77.82 |
77.50 |
78.07 |
79.53 |
79.75 |
81.00 |
79.02 |
81.00 |
81.62 |
NaN |
81.58 |
83.12 |
79.9 |
80.95 |
81.50 |
79.87 |
78.50 |
NaN |
NaN |
80.35 |
80.50 |
80.87 |
JD |
43.58 |
44.34 |
43.10 |
46.72 |
47.03 |
47.81 |
48.96 |
50.85 |
55.53 |
54.26 |
41.38 |
54.31 |
52.57 |
49.9 |
NaN |
52.60 |
52.16 |
NaN |
42.25 |
43.12 |
43.30 |
44.76 |
46.78 |
JSR |
13.78 |
13.84 |
NaN |
15.66 |
15.64 |
15.50 |
15.72 |
15.82 |
16.12 |
16.36 |
NaN |
16.60 |
17.22 |
15.8 |
16.16 |
16.74 |
16.76 |
15.98 |
13.30 |
13.70 |
13.94 |
14.14 |
14.88 |
s.loc['JSR']
日期
2020年4月28日 13.78
2020年4月29日 13.84
2020年5月11日 15.66
2020年5月12日 15.64
2020年5月13日 15.50
2020年5月14日 15.72
2020年5月15日 15.82
2020年5月18日 16.12
2020年5月19日 16.36
2020年5月20日 16.60
2020年5月21日 17.22
2020年5月22日 15.80
2020年5月25日 16.16
2020年5月26日 16.74
2020年5月27日 16.76
2020年5月28日 15.98
2020年5月4日 13.30
2020年5月5日 13.70
2020年5月6日 13.94
2020年5月7日 14.14
2020年5月8日 14.88
Name: 收盘, dtype: float64