4_数据分析—数据重构

简介: 4_数据分析—数据重构

一、数据的合并


1.1 导入基本库


# 导入基本库
import numpy as np
import pandas as pd


1.2 载入数据

#将data文件夹里面的所有数据都载入,与之前的原始数据相比,观察他们的之间的关系
text_left_up = pd.read_csv("train-left-up.csv")
text_left_down = pd.read_csv("train-left-down.csv")
text_right_up = pd.read_csv("train-right-up.csv")
text_right_down = pd.read_csv("train-right-down.csv")
text = pd.read_csv('train.csv')
#四个数据就是整体的数据被按照左上、左下、右上、右下分成四块。

585176bd7f63d08fefdbd0c4024449c8.png

1.3 数据合并


1.3.1 方法一:concat方法

# 使用concat方法:将数据train-left-up.csv和train-right-up.csv横向合并为一张表,并保存这张表为result_up
list_up = [text_left_up,text_right_up]
result_up = pd.concat(list_up,axis=1)
# 使用concat方法:将train-left-down和train-right-down横向合并为一张表,并保存这张表为result_down。
list_down=[text_left_down,text_right_down]
result_down = pd.concat(list_down,axis=1)
# 然后将上边的result_up和result_down纵向合并为result。
result = pd.concat([result_up,result_down])

e0c0ca738a7fc7b817bc086fe0b486dc.png


1.3.2 方法二:join和append方法

# 使用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)


1.3.3 方法三:merge方法和append方法

# 使用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)

使用append才可以进行纵向的拼接(可追加行)。


只有merge,join不行,因为两者都是横向拼接。


二、换一种角度看数据


2.1 将DataFrame类型数据变为Series类型数据

#这个stack函数是干什么的?
#将数据从表格结构变成花括号结构,即将其行索引变成列索引
unit_result=text.stack().head(20)

3bbc15ed0cb79c3a32c57cce871db0fd.png

#将代码保存为unit_result,csv
unit_result.to_csv('unit_result.csv')
test = pd.read_csv('unit_result.csv')
test.head()

17033c949655b7b90813fe107e964617.png


三、数据聚合与运算(泰坦尼克号数据集


数据重构依旧属于数据理解(准备)的范围


3.1 groupby() 用法


根据DataFrame本身的某一列或多列内容进行分组聚合


3.1.1 计算男性与女性的平均票价

# 将上面的数据集按照Sex字段进行划分
df  = text['Fare'].groupby(text['Sex'])
means = df.mean()
means

d433f60b5fb572edc6bfbed72e5172d6.png


3.1.2 统计男女的存活人数


survived_sex = text['Survived'].groupby(text['Sex']).sum()
survived_sex.head()


ef34af382c3b39ee60f4828cf872f087.png


3.1.3 计算客舱不同等级的存活人数


survived_pclass = text['Survived'].groupby(text['Pclass'])
survived_pclass.sum()


1f364b520131e98653c6e8f53fe0a2bf.png

表中的存活那一栏,可以发现如果还活着记为1,死亡记为0


3.1.4 统计在不同等级的票中的不同年龄的船票花费的平均值


text.groupby(['Pclass','Age'])['Fare'].mean().head()


7ad508b3d9b701cb4820fa29aede3041.png

3.1.5 得出不同年龄的总的存活人数,然后找出存活人数最多的年龄段,最后计算存活人数最高的存活率(存活人数/总人数)


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

52c4a8071ee905b87766cf07e2d8b675.png

#找出最大值的年龄段
survived_age[survived_age.values==survived_age.max()]

247e21a1c67a2a05324af3db78a3c3a6.png

#首先计算总人数
_sum = text['Survived'].sum()
print("sum of person:"+str(_sum))
precetn =survived_age.max()/_sum
print("最大存活率:"+str(precetn))
sum of person:342
最大存活率:0.043859649122807015

3.2 agg()函数用法


3.1.1和3.1.2可以用agg()函数来同时计算。并且可以使用rename函数修改列名。


聚合函数,对分组后数据进行聚合,默认情况对分组后其他列进行聚合。

text.groupby('Sex').agg({'Fare': 'mean', 'Pclass': 'count'}).rename(columns=
                            {'Fare': 'mean_fare', 'Pclass': 'count_pclass'})

66acb9f120b0797b0f148f091c66fd55.png


目录
相关文章
|
3月前
|
数据挖掘 PyTorch TensorFlow
|
2月前
|
机器学习/深度学习 人工智能 搜索推荐
某A保险公司的 数据图表和数据分析
某A保险公司的 数据图表和数据分析
64 0
某A保险公司的 数据图表和数据分析
|
4月前
|
数据采集 DataWorks 数据挖掘
提升数据分析效率:DataWorks在企业级数据治理中的应用
【8月更文第25天】本文将探讨阿里巴巴云的DataWorks平台如何通过建立统一的数据标准、规范以及实现数据质量监控和元数据管理来提高企业的数据分析效率。我们将通过具体的案例研究和技术实践来展示DataWorks如何简化数据处理流程,减少成本,并加速业务决策。
500 54
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
55 0
|
3月前
|
机器学习/深度学习 数据挖掘 TensorFlow
🔍揭秘Python数据分析奥秘,TensorFlow助力解锁数据背后的亿万商机
【9月更文挑战第11天】在信息爆炸的时代,数据如沉睡的宝藏,等待发掘。Python以简洁的语法和丰富的库生态成为数据分析的首选,而TensorFlow则为深度学习赋能,助你洞察数据核心,解锁商机。通过Pandas库,我们可以轻松处理结构化数据,进行统计分析和可视化;TensorFlow则能构建复杂的神经网络模型,捕捉非线性关系,提升预测准确性。两者的结合,让你在商业竞争中脱颖而出,把握市场脉搏,释放数据的无限价值。以下是使用Pandas进行简单数据分析的示例:
46 5
|
4月前
|
存储 数据挖掘 数据处理
DataFrame探索之旅:如何一眼洞察数据本质,提升你的数据分析能力?
【8月更文挑战第22天】本文通过电商用户订单数据的案例,展示了如何使用Python的pandas库查看DataFrame信息。首先导入数据并使用`head()`, `columns`, `shape`, `describe()`, 和 `dtypes` 方法来快速概览数据的基本特征。接着,通过对数据进行分组操作计算每位顾客的平均订单金额,以此展示初步数据分析的过程。掌握这些技能对于高效的数据分析至关重要。
44 2
|
4月前
|
数据采集 机器学习/深度学习 算法
"揭秘数据质量自动化的秘密武器:机器学习模型如何精准捕捉数据中的‘隐形陷阱’,让你的数据分析无懈可击?"
【8月更文挑战第20天】随着大数据成为核心资源,数据质量直接影响机器学习模型的准确性和效果。传统的人工审查方法效率低且易错。本文介绍如何运用机器学习自动化评估数据质量,解决缺失值、异常值等问题,提升模型训练效率和预测准确性。通过Python和scikit-learn示例展示了异常值检测的过程,最后强调在自动化评估的同时结合人工审查的重要性。
105 2
|
3月前
|
机器学习/深度学习 数据挖掘 TensorFlow
从数据小白到AI专家:Python数据分析与TensorFlow/PyTorch深度学习的蜕变之路
【9月更文挑战第10天】从数据新手成长为AI专家,需先掌握Python基础语法,并学会使用NumPy和Pandas进行数据分析。接着,通过Matplotlib和Seaborn实现数据可视化,最后利用TensorFlow或PyTorch探索深度学习。这一过程涉及从数据清洗、可视化到构建神经网络的多个步骤,每一步都需不断实践与学习。借助Python的强大功能及各类库的支持,你能逐步解锁数据的深层价值。
69 0
|
4月前
|
供应链 数据可视化 数据挖掘
【python】python省市水资源数据分析可视化(源码+数据)【独一无二】
【python】python省市水资源数据分析可视化(源码+数据)【独一无二】
|
4月前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。