数据分析(3)数据重构

task3——数据重构

学习参考资料:datawhale动手学数据分析

学习链接:https://github.com/datawhalechina/hands-on-data-analysis

学习目标:

  • 了解数据重构的方法
  • 学会使用groupby作数据运算

什么是数据重构?
数据重构:指数据从一种格式到另一种格式的转换,包括结构转换、格式变化、类型替换等,以解决空间数据在结构、格式和类型上的统一,实现多源和异构数据的联接与融合。

合并数据集

【知识部分】

stack

使用pandas进行数据重排时,经常用到stack和unstack两个函数。stack的意思是堆叠,堆积,unstack即“不要堆叠”。
常见的数据层次化结构有:花括号和表格。

表格在行列方向上均有索引(类似于DataFrame)。
花括号结构只有“列方向”上的索引(类似于层次化的Series)。
stack函数会将数据从”表格结构“变成”花括号结构“,即将其行索引变成列索引,反之,unstack函数将数据从”花括号结构“变成”表格结构“,即要将其中一层的列索引变成行索引。

方法 介绍
stack stack函数会将数据从”表格结构“变成”花括号结构“ ,将列索引转为行索引,完成层级索引
unstack unstack函数将数据从”花括号结构“变成”表格结构“,层级索引展开 ,默认操作内层索引
df_obj = pd.DataFrame(np.random.randint(0,10, (5,2)), columns=['data1', 'data2'])
df_obj

在这里插入图片描述

stacked = df_obj.stack()
print(stacked)
stackedd=stacked.unstack()
print(stacked)

代码效果如下所示·:
在这里插入图片描述

concat

Pandas中的pd.concat与np.concatenate类似,但可选参数更多,功能更为强大。

pd.concat可以简单地合并一维的对象:

ser1 = pd.Series(['A', 'B', 'C'], index=[1, 2, 3])
ser2 = pd.Series(['D', 'E', 'F'], index=[4, 5, 6])
pd.concat([ser1, ser2])

多维数据合并:

df1 = make_df('AB', [1, 2])
df2 = make_df('AB', [3, 4])
display('df1', 'df2', 'pd.concat([df1, df2])')

concat函数的参数:

参数 说明
objs 参与连接pandas对象的列表或字典
axis 连接指明的轴向
join 指明其他轴向上的索引是按交集还是并集进行合并
join_axes 指明用于其他n-1条轴向上的层次化索引。可以是任意值的列表或数组,元组数组,数组列表
levels 指定用作层次化索引各级别上的索引 (如果设置外层索引)
names 用于创建分层的名字
verify_integrity 检查结果对象新轴上的重复情况
ignore_index 不保留连接轴上的索引,产生一组新索引range(total_length)

numpy中concatenate和pd.concat的很像。
他俩的主要差异就在于pd.concat在合并时会保留索引&#x

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值