首页 > 其他分享 >pandas中多重索引

pandas中多重索引

时间:2023-04-01 12:13:04浏览次数:42  
标签:多重 use df 索引 green print values pandas bule

多重索引

1.多重索引的构建

#待完善

2.多重索引值得获取

  • 创建测试数据集
import pandas as pd
import numpy as np

iterables = [['1', '2', '3'], ['bule', 'green']]
arrays = pd.MultiIndex.from_product(iterables, names=['number', 'color'])
use_df = pd.DataFrame(
    np.random.randn(6,6),
    index = arrays,
    columns=arrays
)
print(use_df)

"""
# 输出为
number               1                   2                   3         
color             bule     green      bule     green      bule     green
number color                        
1      bule   1.318232  0.178030  0.774973 -0.567643 -0.982961 -0.585139
       green  1.397289 -0.571675 -2.372952  0.043259  0.385781 -0.232037
2      bule  -1.321314  1.523664  0.419699  0.855854 -0.861650  1.089109
       green -1.922272  0.219814 -1.032383  0.915663 -1.719036  1.472052
3      bule   0.302781 -1.035551  0.375275  0.792451 -1.590227 -0.925826
       green -0.650767 -0.308584 -1.177814  1.757994 -0.413690  0.229166

"""

3.获取行列索引(全部)

print(use_df.index)
print(use_df.index.values)
print(use_df.columns.values)

# 输出
MultiIndex([('1',  'bule'),
            ('1', 'green'),
            ('2',  'bule'),
            ('2', 'green'),
            ('3',  'bule'),
            ('3', 'green')],
           names=['number', 'color'])

[('1', 'bule') ('1', 'green') ('2', 'bule') ('2', 'green') ('3', 'bule')('3', 'green')]
[('1', 'bule') ('1', 'green') ('2', 'bule') ('2', 'green') ('3', 'bule')('3', 'green')]
  • 另外可以通过pandas.MultiIndex.get_level_values(level)方法获取特定级别标签值 的向量,这个向量的长度将等于索引的长度。参数level 是级别在MultiIndex中的整 数位置,或者是级别的名称
print(use_df.index.get_level_values(0)) #第一层位置
print(use_df.index.get_level_values('number')) #第一层标签名称
print(use_df.index.get_level_values(1))
print(use_df.index.get_level_values('color'))

# 输出
Index(['1', '1', '2', '2', '3', '3'], dtype='object', name='number')
Index(['1', '1', '2', '2', '3', '3'], dtype='object', name='number')
Index(['bule', 'green', 'bule', 'green', 'bule', 'green'], dtype='object', name='color')
Index(['bule', 'green', 'bule', 'green', 'bule', 'green'], dtype='object', name='color')
print(use_df['1'].columns.values)#第一层列标签中的1列的第2层列明
print(use_df['2'].columns.values)
print(use_df['1'].index.values)
print(use_df['2'].index.values)
print(use_df[['2','3']].index.values)#第一层列标签中的2,3列的2层行标签值

# 输出
['bule' 'green']
['bule' 'green']
[('1', 'bule') ('1', 'green') ('2', 'bule') ('2', 'green') ('3', 'bule')('3', 'green')]
[('1', 'bule') ('1', 'green') ('2', 'bule') ('2', 'green') ('3', 'bule')('3', 'green')]
[('1', 'bule') ('1', 'green') ('2', 'bule') ('2', 'green') ('3', 'bule')('3', 'green')]

4.取值操作

# 取某一个索引的数据
print(use_df['1'])
print(use_df.loc[:]['1'])
print(use_df['2'])
# 取多个索引的数据
print(use_df[['1','2']])
# 选取复合索引的第一行
print(use_df.loc['1'])
  • iloc
print(use_df.iloc[1])
print(use_df.iloc[1]['1'])
print(use_df.iloc[1][1])

# 输出
number  color
1       bule     0.919970
        green   -1.442989
2       bule    -0.629463
        green    1.040237
3       bule     0.596067
        green    0.549045
Name: (1, green), dtype: float64


color
bule     0.919970
green   -1.442989
Name: (1, green), dtype: float64


-1.4429891311997716

标签:多重,use,df,索引,green,print,values,pandas,bule
From: https://www.cnblogs.com/yangzilaing/p/17278380.html

相关文章

  • 解决tabix建索引报错[E::hts_idx_push] Unsorted positions on sequence #
    当我对两个基因型文件位置取交集,并重新生成两个vcf:$bcftoolsview-Roverlap.lstvariant.filter.vcf.gz-Oz-o300.vcf.gz出现如下错误:$tabix300.vcf.gz[E::hts_idx_push]Unsortedpositionsonsequence#4:29013869followedby29013853tbx_index_buildfailed:300.......
  • mysql全文索引
    建立索引语句1.需要字段字符集一致utf8mb4根据自己字段定义ALTERTABLEuserADDFULLTEXT(name,email,phone,external_id)WITHPARSERngramCHARSETutf8mb4;索引占用空间user表大约80M,创建的全文索引占用空间约100M(不含表大小)使用全文索引两种查法:select*from......
  • 索引和类型
    1.新增job索引PUThttp://localhost:9200/job2.查询job索引元数据GEThttp://localhost:9200/job3.删除索引DELEThttp://localhost:9200/job4.查询所有索引元数据GETlocalhost:9200/_all5.查询索引的摘要信息GEThttp://localhost:9200/_cat/indices?v......
  • 千万级数据量表如何快速添加索引/字段
    添加字段语句ALTERTABLEid_tADDtitle(255)DEFAULT''COMMENT'标题'AFTERid;问题线上的一张表如果数据量很大千万级,执行加字段加索隐操作就会锁表,这个过程可能需要很长时间甚至导致服务崩溃,那么这样操作就很有风险了。解决一1.创建一个临时的新表,首先复制旧表的结......
  • 基本背包问题复习(01背包,完全背包,多重背包,分组背包)
    背包问题,本质上就是给几种物品,每个物品有体积有价值,可能有个数限制有一个容量有限的背包,在背包能装下的前提下,能装的最大价值是多少 背包问题一般分为这几种:01背包:每件物品只有一个完全背包:每件物品有无限个多重背包:每件物品有Si个(有限个)分组背包:所有物品被分为多个组,每一组......
  • pandas写入数据库
    importpandasaspdfromsqlalchemyimportcreate_engineimportnumpyasnpw=np.array([1,2,3])datas=pd.DataFrame(w)print(datas)engine=create_engine("mysql+pymysql://root:1234567890@localhost:3306/studentmemo?charset=utf8")con=engine.c......
  • 谷歌网站收录优化指南:让搜索引擎更快找到您的网站!
    谷歌是全球最大的搜索引擎,让您的网站在谷歌中获得更高的收录和排名显得尤为重要。为了帮助您轻松实现这一目标,本文将为您提供一份谷歌网站收录优化指南,让您的网站更快被搜索引擎找到!一、确保网站内容高质量且易于抓取保持内容的原创性:谷歌对原创内容给予更高的权重,因此务必确保您的......
  • pandas中的inplace参数,将变量值赋给inplace= True 的结果,输出为none
    pandas中的inplace参数,将变量值赋给inplace=True的结果,输出为none#在学习drop函数是遇见将变量值赋给inplace=True的结果,输出为noneimportpandasaspdimportnum......
  • ES索引字段主要属性配置
    index属性analyzed:分词后索引,可搜索。not_analyzed:字段值不分词,以单个关键词进行索引。no:字段不索引,当然也就不能搜索。store属性属性store默认false,当某个数据字......
  • 倒排索引
    正排索引:key-value中,通过key去寻找value。倒排索引:通过value(或包含value)去寻找对应的key。正排索引需要首先对全局进行扫描遍历,进而从中做筛选;而倒排索引可以仅抽......