pandas 分层索引(多级索引)

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)
#(1)Series的分层索引
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#注意查看多级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=['公司', '日期'])
##unstack把二级索引(第二层的索引)变成列
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
#(2)Sereis有多层索引MultiIndex怎么筛选数据
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
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值