【数据分析】(task3)数据重构

news2024/9/29 5:29:03

note

  • 数据的合并:df自带的join方法是横向合并,append方法是纵向(上下)合并拼接;pdmerge方法是横向合并,然后用刚才的apend进行纵向合并。
  • 数据的重构:stack函数的主要作用是将原来的列转成最内层的行索引,转换之后都是多层次索引。stack可以改变data层次化结构,变成”花括号“结构(如下面的第二种,将行索引变成列索引,而unstack函数则相反)。

文章目录

  • note
  • 一、数据的合并
  • 二、使用stack换种角度看数据
    • 2.1 对单层df进行stack操作
    • 2.2 对多层df进行stack操作
  • 三、数据运用
  • 时间安排
  • Reference

一、数据的合并

# 1. 将数据train-left-up.csv和train-right-up.csv横向合并为一张表result_up
list_up = [text_left_up,text_right_up]
# axis是进行横向的合并
result_up = pd.concat(list_up,axis=1)

# 2. 将train-left-down和train-right-down横向合并为一张表,并保存这张表为result_down。
# 然后将上边的result_up和result_down纵向合并为result
list_down=[text_left_down,text_right_down]
result_down = pd.concat(list_down,axis=1)
result = pd.concat([result_up,result_down])

(1)3这里df自带的join方法是横向合并,append方法是纵向(上下)合并拼接。
(2)4这里pd的merge方法是横向合并,然后用刚才的apend进行纵向合并。

# 3. 使用DataFrame自带的方法join方法和append:完成任务二和任务三的任务
resul_up = text_left_up.join(text_right_up)
result_down = text_left_down.join(text_right_down)
result = result_up.append(result_down)

# 4. 使用Panads的merge方法和DataFrame的append方法:完成任务二和任务三的任务
result_up = pd.merge(text_left_up,text_right_up,left_index=True,right_index=True)
result_down = pd.merge(text_left_down,text_right_down,left_index=True,right_index=True)
result = resul_up.append(result_down)

# 保存数据
result.to_csv('result.csv')

二、使用stack换种角度看数据

stack函数的主要作用是将原来的列转成最内层的行索引,转换之后都是多层次索引。stack可以改变data层次化结构,变成”花括号“结构(如下面的第二种,将列属性变成行索引,而unstack函数则相反)。
在这里插入图片描述
在这里插入图片描述

列属性变成行索引:
在这里插入图片描述

2.1 对单层df进行stack操作

对单层的df进行stack操作后会变成Series型结构。

text = pd.read_csv('result.csv')
text.head()
unit_result=text.stack().head(20)
type(unit_result)  # pandas.core.series.Series
unit_result.head()

在这里插入图片描述

# 将我们的数据变为Series类型的数据
unit_result=text.stack().head(20)

# 栗子2:stack改变data层次化结构(花括号)
import numpy as np
import pandas as pd
#创建DataFrame
data = pd.DataFrame(np.arange(4).reshape((2, 2)),
index=pd.Index(['row1', 'row2'], name='rows'),
columns=pd.Index(['one', 'two'], name='cols'))
print(data)
# cols one two
# rows 
# row1 0 1
# row2 2 3

#使用stack()函数改变data层次化结构
result = data.stack()
print('data改变成"花括号"结构','\n',result)
# data改变成"花括号"结构 
# rows cols
# row1 one 0
#      two 1
# row2 one 2
#      two 3

2.2 对多层df进行stack操作

import pandas as pd
# 多层次索引作为列属性
col = pd.MultiIndex.from_tuples([('information', 'sex'),
                                 ('information', 'weight')])
# 模拟出一份多层次列属性的数据
df3 = pd.DataFrame([["男", 178], ["女", 166]],
                   index = ["小郭", "小刘"],
                   columns = col) # 多层次列属性
df3

在这里插入图片描述
在这里插入图片描述

三、数据运用

# groupby数据聚合

# 1. 男女性的平均票价
df  = text['Fare'].groupby(text['Sex'])
means = df.mean()

在这里插入图片描述
其实和平时sql的groupby的分组都类似,如按照性别进行分组后统计每组的存活人数(存活这个字段需要先指定)。

# 2. 男女性的存活人数(存活一列 如果活着是1 否则为0)
survived_sex = text['Survived'].groupby(text['Sex']).sum()

# 3. 计算客舱不同等级的存活人数
survived_pclass = text['Survived'].groupby(text['Pclass'])
survived_pclass.sum()

# 4. 统计在不同等级的票中的不同年龄的船票花费的平均值
text.groupby(['Pclass','Age'])['Fare'].mean().head()

# 5. 不同年龄的存活人数
survived_age = text['Survived'].groupby(text['Age']).sum()

时间安排

任务任务内容时间完成情况
-1月16日周一开始
Task01:数据加载及探索性数据分析(第一章第1,2,3节)(2天)16-17日周二完成
Task02:数据清洗及特征处理(第二章第1节)(2天)18-19日周四完成
Task03:数据重构(第二章第2,3节)(2天)20-21日周六完成
Task04:数据可视化(第二章第4节)(2天)22-23日周一
Task05:数据建模及模型评估(第三章第1,2节)(3天)24-26日周四

Reference

[1] https://github.com/datawhalechina/hands-on-data-analysis
[2] pandas重塑层次化索引(stack()和unstack()函数解析)
[3] 图解pandas的轴旋转函数:stack和unstack

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/174707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis基本类型和基本操作

2.Redis常见命令 Redis是典型的key-value数据库,key一般是字符串,而value包含很多不同的数据类型: Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网( https://redis.io/commands &…

阿里云轻量服务器下>安装宝塔面板>安装使用Tomcat服务器>通过公网ip地址>直接访问网站目录下文件

第一步 阿里云开放Tomcat 8080端口号 和宝塔面板 8888端口 第二步 如果你的应用镜像 一开始在阿里云购买服务器时候没有选择宝塔应用镜像 先打开如下界面 将系统中应用镜像 确定更换为 宝塔面板镜像 第三步 请在应用详情中 走完紫色所框选的步骤 第四步 将上一步获取到的…

cadence SPB17.4 - allegro - align component by pin

文章目录cadence SPB17.4 - allegro - align component by pin概述笔记实验备注补充 - 2023_0120_2337ENDcadence SPB17.4 - allegro - align component by pin 概述 allegro自带的元件对齐, 默认是对齐元件中心的, 对齐后的效果是中心对齐. 但是为了走线能走的最短, 拉线方便…

2023年春节祝福第二弹——送你一只守护兔(下),CSS3 动画相关属性图例实例大全(82种),守护兔源代码免费下载

2023年春节祝福第二弹——送你一只守护兔(下) CSS3 动画相关属性图例实例大全(82种)、守护兔源代码免费下载 本文目录: 五、CSS3 动画相关属性实例大全 (1)、CSS3的动画基本属性 (2&#xf…

TCP/IP OSI七层模型

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.OSI七层模型 1.什么是OSI七层参考模型 2.七层每层分别的作用…

Spring热部署设置

手动热部署 热部署是指在不停止应用程序的情况下更新应用程序的功能。这样可以避免短暂的服务中断&#xff0c;并且可以更快地部署新的功能和修复问题。热部署通常适用于Web应用程序和服务器端应用程序。 在pom.xml中添加依赖&#xff1a; <dependency><groupId>…

cmake 02 hello_cmake

cmake 学习笔记 一个最小化的 cmake 项目 目录结构 F:\2023\code\cmake\hello_cmake>tree /f 卷 dox 的文件夹 PATH 列表 卷序列号为 34D2-6BE8 F:. │ CMakeLists.txt │ main.cpp │ └─.vscodelaunch.jsontasks.jsonF:\2023\code\cmake\hello_cmake>源码 main.c…

Java 集合 笔记

体系 Collection接口 List接口&#xff1a;按照顺序插入数据&#xff0c;可重复 ArrayList实现类&#xff1a;LinkedList实现类&#xff1a; Set接口&#xff1a;不可重复的集合 HashSet实现类 Queue接口&#xff1a;队列 LinkedList实现类ArrayBlockingQueue实现类PriorityQu…

Python CalmAn工具包安装及环境配置过程【Windows】

文章目录CalmAn简介安装要求我的设备1>CalmAn压缩包解压2>conda创建虚拟环境3>requirements依赖包配置&#xff08;包括tensorflow&#xff09;4>caiman安装(mamba install)5>caimanmanager.py install6>PyCharm添加解释器7>Demo演示8>遇到的问题CalmA…

DB SQL 转 ES DSL(支持多种数据库常用查询、统计、平均值、最大值、最小值、求和语法)...

1. 简介 日常开发中需要查询Elasticsearch中的数据时&#xff0c;一般会采用RestHighLevelClient高级客户端封装的API。项目中一般采用一种或多种关系型数据库(如&#xff1a;Mysql、PostgreSQL、Oracle等) NoSQL(如&#xff1a;Elasticsearch)存储方案&#xff1b;不同关系数…

【SAP Abap】X档案:SAP ABAP 中 AMDP 简介及实现方法

SAP ABAP 中 AMDP 简介及实现方法0、前言1、AMDP 简介1.1 代码下沉&#xff08;Code Pushdown&#xff09;1.2 AMDP 是托管数据库过程的容器1.3 AMDP 的优缺点1.4 几种数据库访问方式的区别1.5 几种数据库访问方式的选用1.6 使用的开发工具2、实现方法2.1 AMDP PROCEDURE&#…

Linux自带10种常用性能分析与监控工具

liunx的性能分析与监控这些问题是一个很重要的问题&#xff0c;我们需要解决这个问题就可以借助liunx中的一些工具来帮我们处理掉这个问题&#xff0c;以下将会讲一下目前liunx中常用自带的性能分析与监控工具 Linux自带10种常用性能分析与监控工具1.vmstat2.iostat3.iotop监控…

uniapp cli的使用

uniapp官方文档有很多地方写的不是很明白。写笔记还是非常有必要的。 cli入门 uniapp的cli分为两种&#xff1a;uni cli和hbuilder cli。下面是官方对于两者的定义。官方实际上是更推荐uni cli的。因为官方文档通篇都是介绍uni cli&#xff0c;也是优先介绍uni cli的。hbuild…

Linux系统之Bonding 网卡绑定配置方法

Linux系统之Bonding 网卡绑定配置方法一、检查本地系统环境1.检查系统版本2.查看服务器网卡二、创建网卡配置文件1.进入网卡配置文件目录2.拷贝eth0的网卡配置文件3.修改bond0网卡配置文件4.修改eth1网卡配置文件5.修改eth2网卡配置文件三、创建bonding的配置文件1.编辑bonding…

OneFlow v0.9.0正式发布

今天是 OneFlow 开源的第 903 天&#xff0c;OneFlow v0.9.0 正式发布。本次更新包含 640 个 commit&#xff0c;完整更新列表请查看链接&#xff1a;https://github.com/Oneflow-Inc/oneflow/releases/tag/v0.9.0&#xff0c;欢迎下载体验新版本&#xff0c;期待你的反馈。One…

Java补充内容(Junit 反射 注解)

1 Junit测试 测试分类&#xff1a; 1. 黑盒测试&#xff1a;不需要写代码&#xff0c;给输入值&#xff0c;看程序是否能够输出期望的值。 2. 白盒测试&#xff1a;需要写代码的。关注程序具体的执行流程。 Junit使用&#xff1a;白盒测试 步骤&#xff1a; 定义一个测试类(测试…

机器学习知识总结——18.实现一个简单的K-Means聚类

文章目录引用库生成样本数据训练K-Means实验在上一章节里简要的介绍了无监督学习中聚类的知识点&#xff0c;看的太多理论概念&#xff0c;难免会有点莫名其妙&#xff0c;现在就让我们来实现一个简单的 K-Means 算法&#xff0c;从而从原理上彻底弄明白聚类是怎么工作的。 引…

YOLO v2主要看这些重点

来源&#xff1a;投稿 作者&#xff1a;ΔU 编辑&#xff1a;学姐 往期内容&#xff1a; YOLOv1学习笔记 论文 《YOLO9000:Better, Faster, Stronger》 Joseph Redmon∗†, Ali Farhadi∗† University of Washington∗ , Allen Institute for AI† http://pjreddie.com/…

计算机视觉OpenCv学习系列:第五部分、颜色操作

第五部分、颜色操作第一节、颜色表操作1.查找表LUT(look up table)2.颜色查找表&#xff08;1&#xff09;Gamma校正&#xff08;2&#xff09;OpenCV默认的查找表3.代码练习与测试&#xff08;1&#xff09;多种颜色查找表&#xff08;2&#xff09;滚动条颜色查找表第二节、随…

23种设计模式(十四)——中介者模式【接口隔离】

文章目录 意图什么时候使用中介者真实世界类比中介者模式的实现中介者模式的优缺点亦称:调解人、控制器、Intermediary、Controller、Mediator 意图 用一个中介者对象来封装一系列的对象交互。使得各对象不需要显式地相互引用,从而使其松散耦合,而且可以独立地改变它们之间…