首页 > 编程语言 >python DataFrame之MultiIndex 的使用

python DataFrame之MultiIndex 的使用

时间:2024-05-23 16:58:12浏览次数:20  
标签:index MultiIndex python DataFrame df pd print

import pandas as pd

import pprint as p

# 嵌套列表
arrays = [['a', 'a', 'b', 'b'], [1, 2, 1, 2]]

# 创建 MultiIndex
index = pd.MultiIndex.from_arrays(arrays, names=('letter', 'number'))

# 使用 MultiIndex 创建 DataFrame
df = pd.DataFrame({'value': [10, 20, 30, 40]}, index=index)

p.pprint(df)



data = {
    'letter': ['a', 'a', 'b', 'b'],
    'number': [1, 2, 1, 2],
    'value': [10, 20, 30, 40]
}
df = pd.DataFrame(data)

# 设置 MultiIndex
df = df.set_index(['letter', 'number'])

p.pprint(df)

print('交换索引层级')
# 交换索引层级
df_swapped = df.swaplevel('letter', 'number')
print(df_swapped)


# 按某一层级排序
print('按某一层级排序')
df_sorted = df.sort_index(level='number')
print(df_sorted)





# 创建一个更复杂的 DataFrame
arrays = [
    ['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
    ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']
]
index = pd.MultiIndex.from_arrays(arrays, names=['first', 'second'])
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7, 8], 'B': [10, 20, 30, 40, 50, 60, 70, 80]}, index=index)

p.pprint(df)

# 按层级选择数据
print('按层级选择数据')
print(df.loc['bar'])
print('bar+one')
print(df.loc[('bar', 'one')])

# 按层级进行统计分析
print('按层级进行统计分析')
print(df.groupby(level='first').sum())

标签:index,MultiIndex,python,DataFrame,df,pd,print
From: https://www.cnblogs.com/Alicia-meng/p/18208931

相关文章

  • [Python] pipe模块
    一.概述我们都知道在Linux下执行命令ls|sort-r会将排序后的结果进行输出,它是先获取目录数据,管道符|将ls的输出作为后一个命令的输入,最终得到反向排序的结果。Python和其他大多数语言一样,处理数据的时候通常是将数据作为参数传入。但是有没有像Linux管道符那样优雅的输出呢?有......
  • 买卖股票相关算法-动态规划-python
    要求1:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不......
  • Pairwise实现(Python篇)
    开篇:测试过程中,对于多参数参数多值的情况进行测试用例组织,之前一直使用【正交分析法】进行用例组织,说白了就是把每个参数的所有值分别和其他参数的值做一个全量组合,用Python脚本实现,就是itertools模块中product方法(又称笛卡尔积法)。组合生成器,例:importitertoolsa=(......
  • python多进程感悟
    对于大量的测试数据,使用多进程时(例如8个进程),最好使用queue来消费数据,不要将测试数据分为8个list,分别送入不同的进程中,因为这样可以避免极端情况出现。例如,每个测试数据处理起来耗时不一样,你刚好把耗时比较长的数据分了同一个list,就会导致其他的进程也会一直等待该进程的完成。......
  • Python使用Argparse读取命令参数
    python编写的脚本需要通过命令参数来做一些参数配置。本文将介绍如何使用argparse来解析命令行参数。这种方法相对于sys.args的方式会简单很多。通过以下的脚本来构建一个简单的配置解析器,解析用户名、密码。importargparseimportsysdefmain():  args=sys.ar......
  • Linux下安装Python3
    前言Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7版本,默认的python被系统很多程序所依赖,比如centos下的yum就是python2写的,所以默认版本不要轻易删除,否则会有一些问题,如果需要使用最新的Python3那么我们可以编译安装源码包到独立目录,这和系统默认环......
  • Python 逗号的巧用
    Python逗号的巧用如果需要在中的列表、字典或集合常量中添加或移除项,记住一个窍门:在所有行后面都添加一个逗号。还不太明白?来看一个示例。假设在代码中有下面这个由名字组成的列表:>>>names=['Alice','Bob','Dilbert']在修改这个名字列表时,通过gitdiff查看改动可能有点......
  • Python pip 安装与使用
    Pythonpip安装与使用pip是Python包管理工具,该工具提供了对Python包的查找、下载、安装、卸载的功能。目前如果你在python.org下载最新版本的安装包,则是已经自带了该工具。注意:Python2.7.9+或Python3.4+以上版本都自带pip工具。pip官网:https://pypi.org/pro......
  • [oeasy]python018_ 如何下载github仓库_git_clone_下载仓库
    继续运行......
  • python在Linux环境下访问Windows共享目录
    1.smbprotocol 不推荐,偶然会出现 "SMBsocketwasclosed,cannotsendorreceiveanymoredata" 的异常。pipinstallsmbprotocol实现代码:#!/usr/bin/envpython#-*-encoding:utf-8-*-fromsmbclientimportopen_file,register_session,delete_session......