在数据处理和分析中,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