首页 > 其他分享 >Pandas高级操作:多级索引、窗口函数、数据透视表等

Pandas高级操作:多级索引、窗口函数、数据透视表等

时间:2024-08-08 16:52:48浏览次数:13  
标签:df 多级 索引 华为 表等 print 手机 数据 Pandas

        在数据处理和分析中,pandas库提供了强大的功能,支持从简单到复杂的数据操作。本文将介绍一些pandas的高级操作,包括多级索引(MultiIndex)、窗口函数(Window Functions)、数据透视表与复杂聚合、数据合并与连接、高级数据变换以及时间序列数据的高级处理。

1. 多级索引(MultiIndex)

多级索引(MultiIndex)是pandas中一个非常有用的功能,它允许我们在一个轴上拥有多个(两个以上)索引级别。这对于处理具有层次结构的数据非常有用,例如,我们可以同时按厂商和产品对销售数据进行分组。

import pandas as pd
import numpy as np

# 创建多重索引的列表
arrays = [
    ['华为', '华为', '苹果', '苹果', '小米', '小米', '三星', '三星'],      # 厂商级别索引
    ['手机', '笔记本', '手机', '笔记本', '手机', '笔记本', '手机', '笔记本']  # 产品级别索引
]
# 从列表创建多重索引,并给索引级别命名
index = pd.MultiIndex.from_arrays(arrays, names=['厂商', '产品'])
# 创建数据框,使用多重索引作为行索引
# 假设华为的销量和销售额最高,其次是苹果,然后是小米,最后是三星
# 数据单位为“万”
sales_data = [1000, 800, 750, 600, 500, 400, 300, 200]  # 销量(单位:万)
revenue_data = [5000, 4000, 3750, 3000, 2500, 2000, 1500, 1000]  # 销售额(单位:万)
df = pd.DataFrame({'销量(万)': sales_data, '销售额(万)': revenue_data}, index=index)

print("原始数据框:")
print(df)

# 选择厂商为'华为'和产品为'手机'的数据
filtered_df = df.loc[('华为', '手机')]
print("\n选择厂商为'华为'和产品为'手机'的数据:")
print(filtered_df)

# 重塑数据框,将产品级别索引作为列
reshaped_df = df.unstack(level='产品')
print("\n重塑数据框,将产品级别索引作为列:")
print(reshaped_df)

运行结果: 

原始数据框:
        销量(万)  销售额(万)
厂商 产品                
华为 手机    1000    5000
   笔记本    800    4000
苹果 手机  

标签:df,多级,索引,华为,表等,print,手机,数据,Pandas
From: https://blog.csdn.net/weixin_45933029/article/details/140949763

相关文章

  • pandas 获取不在其他数据框中的行
    我有两个pandas数据框,它们有一些共同的行。假设dataframe2是dataframe1的子集。如何获取dataframe1中不存在于dataframe2中的行?df1=pandas.DataFrame(data={'col1':[1,2,3,4,5],'col2':[10,11,12,13,14]})df2=pandas.DataFrame(da......
  • 将 Pandas 对象数据帧转换为向量数据帧?
    我有一个Pandas数据框(超过1k行)。我的数据框中有数字、对象、字符串和布尔值。我想将数据帧的每个“单元格”转换为向量,并使用结果向量。然后,我计划比较每一行向量的相似性。例如,我的数据是:Col0,Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col8,Col9,Col1012,65e......
  • 如何使用 FastAPI 返回 JSON 格式的 csv 文件/Pandas DataFrame?
    我有一个.csv文件,我想在FastAPI应用程序中渲染。我只设法以JSON格式呈现.csv文件,如下所示:deftransform_question_format(csv_file_name):json_file_name=f"{csv_file_name[:-4]}.json"#transformsthecsvfileintojsonfilepd.r......
  • 猫头虎分享 Python 知识点:pandas--info()函数用法
    ......
  • 更改 pandas.DataFrame 的样式:永久?
    当我更改pandas.DataFrame的样式时,例如像这样#colorthesecolumnscolor_columns=['roi','percent_of_ath'](portfolio_df.style#colornegativenumbersred.apply(lambdav:&#......
  • 设计师的超强素材管理神器,支持多级打标签,支持Win/Mac双系统
    作为一名设计师,整理和管理各种素材是我们日常花费比较多时间的工作流之一。但是当我们收集的素材积累到一定量后,整理和查找素材将会非常麻烦。这么多零散的素材内容,积累到一起的结果就是,每次想要找一个素材,就需要花费一定的时间在电脑上到处寻找。 为了解决这个问题,千鹿设计......
  • 将 XML 读入 Pandas DataFrame
    只是想知道是否有人能够帮助找出我在这个Python脚本中出错的地方。我正在尝试阅读美国灯光列表每周更改xml(此处找到:https://www.navcen.uscg.gov/sites/default/files/xml/lightLists/weeklyUpdates/v7d09WeeklyChanges.xml)到Pandas数据帧中。我不经常编程,所以我只......
  • FutureWarning:设置不兼容 dtype 的项目已被弃用,并将在 pandas 的未来错误中引发。价值
    正如类似问题中提到的,我尝试转换为对象拳头,然后将我的列转换为字符串。然而,即使在这一步中,我也会遇到相同的未来警告错误。列数据类型首先是“对象”。所以再次将其更改为object是不可行的。有趣的是,当我想将数据更改为sting时,我收到此警告,表明列类型为int64,我在df.inf......
  • 基于STM32-OLED多级菜单(LCD等等屏幕均可移植)
    一,内容概括:不使用长篇大论1:多级菜单介绍2:实现思路3:代码编写4:总结二,正文1.多级菜单介绍:想必大家看到这里,也知道多级菜单大概是什么;对于还不太清楚的朋友说明以下,多级菜单就是将一块屏幕原本只能显示一种内容,扩展到可以显示很多内容。依据自己的设定显示内容。2.实现思路......
  • Pandas 有效地获取每个数据帧组中具有多个 n 值的前 n 行
    从像df=pd.DataFrame([{'name':'a','id':0,'category':'1'},{'name':'b','id':1,'category':'1'},{'name':......