ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

05-Pandas层级索引

2021-10-31 23:34:08  阅读:156  来源: 互联网

标签:__ index 层级 name 05 dtype s1 sortlevel Pandas


1.层级索引

import numpy as np
import pandas as pd
s1 = pd.Series(np.random.randn(12),index = [['a','a','a','b','b','b','c','c','c','d','d','d'],[0,1,2,0,1,2,0,1,2,0,1,2]])
s1
a  0    1.766538
   1    0.345160
   2   -1.049204
b  0   -0.212596
   1    0.220403
   2   -1.001067
c  0   -0.471350
   1    0.823931
   2   -0.551105
d  0   -0.190322
   1    0.701434
   2   -0.571929
dtype: float64
print(type(s1.index))
print(s1.index)
<class 'pandas.core.indexes.multi.MultiIndex'>
MultiIndex([('a', 0),
            ('a', 1),
            ('a', 2),
            ('b', 0),
            ('b', 1),
            ('b', 2),
            ('c', 0),
            ('c', 1),
            ('c', 2),
            ('d', 0),
            ('d', 1),
            ('d', 2)],
           )

2.选取

#1.外层选取
s1['b']
0   -0.212596
1    0.220403
2   -1.001067
dtype: float64
#2.内层获取
s1[:,2]
a   -1.049204
b   -1.001067
c   -0.551105
d   -0.571929
dtype: float64
s1['a',0]
1.766537562273998

3.交换

#1.swaplevel()交换内层和外层的索引
s1.swaplevel()
0  a    1.766538
1  a    0.345160
2  a   -1.049204
0  b   -0.212596
1  b    0.220403
2  b   -1.001067
0  c   -0.471350
1  c    0.823931
2  c   -0.551105
0  d   -0.190322
1  d    0.701434
2  d   -0.571929
dtype: float64
#2.sortlevel()先对外层索引进行排序,在对内层索引进行排序, 默认升序
s1.sortlevel()   # 此方法现在好像不支持了,需要使用 sort_index()方法,
D:\Anaconda\lib\site-packages\ipykernel_launcher.py:2: FutureWarning: sortlevel is deprecated, use sort_index(level=...)
  





a  0   -0.241259
   1    0.898846
   2   -0.233832
b  0    0.796350
   1    0.025104
   2    1.232659
c  0   -0.899175
   1    0.684583
   2    0.970989
d  0   -0.075916
   1   -1.913964
   2    0.223474
dtype: float64
#交换并排序分层
s1.swaplevel().sortlevel()   # 这个也是不行了
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-11-413a6bd8d6a7> in <module>
      1 #交换并排序分层
----> 2 s1.swaplevel().sortlevel()


d:\python\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
   5139             if self._info_axis._can_hold_identifiers_and_holds_name(name):
   5140                 return self[name]
-> 5141             return object.__getattribute__(self, name)
   5142 
   5143     def __setattr__(self, name: str, value) -> None:


AttributeError: 'Series' object has no attribute 'sortlevel'

标签:__,index,层级,name,05,dtype,s1,sortlevel,Pandas
来源: https://blog.csdn.net/qq_53535048/article/details/121072151

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有