Python 大数据分析概述--2.数据规整(聚合、合并、重塑)

本节主要涉及一下三个方面:层次化索引、数据合并、重塑和轴向旋转

2.1层次化索引:

在某个方向(行 / 列)上拥有两个及以上索引级别,也叫多层索引

作用:能以较低维度形式处理高维度数据、可按层次筛选数据、是数据重塑和分组操作(如透视表)中的重要工具

支持层级索引的对象:

  • Series 的层级索引
  • DataFrame 的层级索引
2.1.1Series索引案例:
import  numpy as np
import pandas as pd
data=pd.Series(np.random.randn(9),index=[['a','a','a','b','b','c','c','d','d'],[1,2,3,1,3,1,2,2,3]])
print(data)

print(data.index)

#利用层次化索引获取数据
print(data['b'])

#利用切片获取数据,前面是第一层索引,后面是第二层索引
print(data[:,1])

#使用loc方法
print(data.loc['a':'c',1:2])

2.1.2DataFrame层次索引案例:

每一条轴上添加层次索引,各层都有自己的名字

# 生成4行3列随机数的DataFrame
df = pd.DataFrame(np.random.randn(12).reshape(4, 3),
                  index=[['a', 'b', 'c', 'd'], [1, 2, 1, 2]],  # 行索引
                  columns=[['A', 'A', 'B'],[ 1, 2, 3]])     # 列索引

print(df)

# 生成4×4随机数的临时DataFrame,行和列均为多层索引,from_product显示构造
temp_df = pd.DataFrame(np.random.random(16).reshape(4, 4),
                       pd.MultiIndex.from_product([['a', 'b'], [1, 2]]),  # 行多层索引
                       columns=pd.MultiIndex.from_product([['A', 'B'], [1, 2]]))  # 列多层索引

print(temp_df)

#索引、列名赋值

df.index.names = ['k1', 'k2'] # 给行索引层级命名

df.columns.names = ['n1', 'n2'] # 给列索引层级命名

print(df)

重排(交换层级):重新调整某轴上各级别的顺序

DataFrame.swaplevel(i=-, j=-, axis=0)返回交换层级后的新对象,不改变原数据

#重排
print(df.swaplevel('k1', 'k2'))

分级排序功能:根据指定级别上的值对数据进行排序
DataFrame.sort_index(level=0, axis=0, ascending=True, inplace=False, sort_remaining=True)按字典顺序在指定level的内容排序,相同标签内部进行排序
#重排级别 + 分级排序  先交换层级,再按指定级别排序
print(df.swaplevel('k1', 'k2').sort_index(level=0))

2.1.3根据级别汇总统计
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rose and war

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值