Titanic--细节记录二

news2024/11/24 19:45:50

merge、join以及concat的方法的不同以及相同

相同之处:都用于合并数据。 不同之处:

  • merge主要是基于列的合并。
  • join主要是基于索引(行标签)的合并。
  • concat可以沿任意轴合并,更灵活。
import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})

                                            

 merge

result = pd.merge(df1, df2, on='A', how='outer')

join 

df1 = df1.set_index('A')
df2 = df2.set_index('A')
result = df1.join(df2, lsuffix='_df1', rsuffix='_df2')

  1. df1 = df1.set_index('A'):将df1的索引设置为"A"列,意味着后续的连接操作将基于这个列的值。
  2. df2 = df2.set_index('A'):同样地,将df2的索引设置为"A"列。
  3. result = df1.join(df2, lsuffix='_df1', rsuffix='_df2'):使用join方法将df1df2连接在一起。参数lsuffixrsuffix是必要的,因为两个DataFrame在设置索引后将具有相同的列名,这些后缀将添加到重叠列名中,以便区分来自哪个DataFrame。
  4. 如果df2中A列中的值有与df1中A的值相同的则会连接在一起,否则将会补成nan

concat

result = pd.concat([df1, df2])

 stack函数

stack的作用是重新塑造DataFrame,它将数据的列“堆叠”成行,生成一个MultiIndex Series,其中新的索引级别包括原始DataFrame的列名。这有助于将宽格式的数据转换为长格式,并常用于准备数据进行分析或可视化。

例如,如果原始DataFrame是:

   A  B
0  1  2
1  3  4

那么stack()的结果将是:

0  A    1
   B    2
1  A    3
   B    4
dtype: int64

agg函数

agg函数是Pandas库中的一个强大工具,用于聚合操作。它允许你同时对一个或多个列执行多种聚合操作。

使用agg函数,你可以一次执行例如求和、平均值、最小值和最大值等多种操作,并将结果组合成一个DataFrame。

以下是一个示例,说明如何使用agg函数:

import pandas as pd

# 创建一个示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 对'A'列求和,对'B'列求最大值和最小值
result = df.agg({
    'A': 'sum',
    'B': ['max', 'min']
})

结果是:

      A    B
max NaN  6.0
min NaN  4.0
sum 6.0  NaN

也可以对整个DataFrame调用agg并应用相同的聚合函数到每一列:

result = df.agg(['sum', 'mean'])
      A    B
sum   6   15
mean  2.0  5.0

countplot--计算条形统计图

sns.countplot(x="Pclass", hue="Survived", data=text)
  • x="Pclass":设置x轴上的变量为"Pclass"列。这意味着图形将显示该列中不同类别的计数。

  • hue="Survived":使用"Survived"列为图形着色,这样你就可以看到每个"Pclass"类别中"Survived"的不同值的计数。这可以帮助你理解"Pclass"和"Survived"之间的关系。

  • data=text:设置数据源为text DataFrame。这是你之前从CSV文件读取的数据。

 FacetGrid

facet = sns.FacetGrid(text, hue="Survived",aspect=3)

FacetGrid是一个用于创建一组图形的对象,这些图形可以根据一个或多个分类变量的不同级别展示数据。

  • facet = sns.FacetGrid():创建一个FacetGrid对象并将其赋值给变量facet

  • text:第一个参数,指定要使用的DataFrame,这里是text

  • hue="Survived":设置着色变量为"Survived"列。这意味着在网格内的每个小图中,不同的"Survived"值将使用不同的颜色表示。

  • aspect=3:设置每个小图的宽高比为3。这控制了每个小图的形状。

kdeplot--核密度估计图

facet.map(sns.kdeplot,'Age',shade= True)
  • facet: 这是一个已经创建的FacetGrid对象,通常基于某个分类变量对数据进行分组。

  • .map(): 这是FacetGrid对象的方法,用于在网格的每个子集上绘制特定类型的图。

  • sns.kdeplot: 这是传递给map方法的绘图函数,用于在每个facet上绘制核密度估计图。

  • 'Age': 这是传递给kdeplot的变量名,表示要绘制KDE图的DataFrame中的列名。

  • shade=True: 这是传递给kdeplot的一个参数,表示KDE图下方的区域将被填充或"阴影",使图形更容易阅读和解释。

facet.set

facet.set(xlim=(0, text['Age'].max()))

这行代码设置了FacetGrid对象中每个子图的x轴范围。

  • facet: 这是一个已经创建的FacetGrid对象。

  • .set(): 这是FacetGrid对象的一个方法,用于设置网格属性。

  • xlim=(0, text['Age'].max()): 这是传递给set方法的一个参数,用于设置x轴的限制。

    • 0: x轴的起始值设置为0。
    • text['Age'].max(): x轴的结束值设置为text DataFrame中'Age'列的最大值。

 facet.add_legend()

facet.add_legend()

facet.add_legend()是Seaborn库中FacetGrid对象的一个方法,用于在图的一个角落添加图例。

图例是一个包含一个或多个条目的区域,每个条目由一个标记(例如颜色块或线条)和一个标签组成。图例用于解释图中的符号和颜色代表的含义。

如果之前创建的FacetGrid对象facet基于某个分类变量进行着色(例如通过hue参数指定),那么调用facet.add_legend()将添加一个图例来解释这些颜色。

图例通常自动基于hue参数所代表的数据列的名称和唯一值生成。

折线图表示年龄分布情况

text.Age[text.Pclass == 1].plot(kind='kde')
text.Age[text.Pclass == 2].plot(kind='kde')
text.Age[text.Pclass == 3].plot(kind='kde')
plt.xlabel("age")
plt.legend((1,2,3),loc="best")

为什么所有的曲线都被添加到同一个图上:

  1. 没有新的图形或轴创建:如果你想在不同的图或轴上绘制,你通常会使用像plt.figure()plt.subplot()这样的函数来创建新的图或轴。在你的代码中,没有使用这些函数,所以所有的绘图都被添加到当前的图和轴上。

  2. 连续的绘图调用:当你连续调用plot函数,matplotlib会在当前活动的轴上绘制。如果没有创建新的轴或图,那么连续的绘图调用将在同一个轴上绘制。

  3. 全局状态:matplotlib有一个全局状态机制,它跟踪当前的图、轴等。当你调用像plt.plot()这样的函数时,它操作当前活动的图和轴。如果你不显式地改变活动的图或轴,连续的调用将在同一位置操作。

填充问题

具体地说,plot方法的kind='kde'选项并不直接接受shade参数。如果你想要控制阴影或填充KDE图下方的区域,你可以直接使用Seaborn的kdeplot函数,或者使用matplotlib的命令来手动填充。

import seaborn as sns
sns.kdeplot(text.Age[text.Pclass == 1], shade=True)
sns.kdeplot(text.Age[text.Pclass == 2], shade=True)
sns.kdeplot(text.Age[text.Pclass == 3], shade=True)
plt.xlabel("age")
plt.legend((1,2,3),loc="best")

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

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

相关文章

Linux 查看内存使用情况的几种方法

在运行 Linux 系统的过程中为了让电脑或者服务器以最佳水平运行,常常需要监控内存统计信息。 那么今天我们就来看看有哪些方法可以访问所有相关信息并帮助管理员监控内存统计信息。 查看或者获取 Linux 中的内存使用情况既可以通过命令的方式,也可以通…

OptaPlanner笔记6 N皇后

N 个皇后 问题描述 将n个皇后放在n大小的棋盘上,没有两个皇后可以互相攻击。 最常见的 n 个皇后谜题是八个皇后谜题,n 8: 约束: 使用 n 列和 n 行的棋盘。在棋盘上放置n个皇后。没有两个女王可以互相攻击。女王可以攻击同一水…

Python语言基础---选择判断循环结构详解

文章目录 🍀引言🍀if语句🍀if-else语句🍀if-elif-else语句🍀for循环🍀while循环 🍀引言 在Python编程语言中,选择判断和循环是两个非常重要的概念。它们可以让我们根据条件执行不同的…

分布式应用:Zabbix监控Tomcat

目录 一、理论 1.Zabbix监控Tomcat 二、实验 1.Zabbix监控Tomcat 三、问题 1.获取软件包失败 2.tomcat 配置 JMX remote monitor不生效 3.Zabbix客户端日志报错 一、理论 1.Zabbix监控Tomcat (1)环境 zabbix服务端:192.168.204.214 …

模型性能的主要指标

主要参数 ROC 曲线和混淆矩阵都是用来评估分类模型性能的工具 ROC曲线(Receiver Operating Characteristic curve): ROC曲线描述了当阈值变化时,真正类率(True Positive Rate, TPR)和假正类率&#xff0…

SAP 收藏夹Favorites介绍,收藏夹导入/导出功能

作为SAP用户,经常需要使用一些事务代码T-Code, 很多时候会因为不常用其中的一些遗忘这个功能,所以这时候分类收藏好不同Module的事务代码到收藏夹里是一个不错的选择。 经常面临的一个场景就是需要变换系统环境,比如从Client A01,去到Client…

springcloud 基础

SprinbCloud微服务简介 架构发展历史 SpringBoot由baiPivotal团队在2013年开始研发、2014年4月发布第一个du版本的全新开源的轻量级框架。 它基zhi于Spring4.0设计,不dao仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用…

QIIME 2教程. 11元数据Metadata(2023.5)

QIIME 2用户文档. 11元数据 Metadata in QIIME 2 https://docs.qiime2.org/2023.5/tutorials/metadata/ 注:此实例需要一些基础知识,要求完成本系列文章前两篇内容:《1简介和安装Introduction&Install》和4《人体各部位微生物组分析Movin…

【硬件突击 电路】

文章目录 1. 电阻(Resistor):2. 电容(Capacitor):3. 电感:4、 RC、RL、RLC电路结构及工作原理基尔霍夫定律基尔霍夫电流定律(KCL)基尔霍夫电压定律(KVL&#…

【舌尖优省PLUS】美团、饿了么外卖免费领红包,尽情享受美食与省钱!

家人们!我昨天刚开发完并上线了一个超棒的外卖免费领红包的小程序,它叫做【舌尖优省PLUS】!如果你喜欢美食,还想省下一些钱,那这个小程序绝对不能错过! 在【舌尖优省PLUS】上,你可以通过简单的…

react 生命周期方法

组件的生命周期 每个组件都包含 “生命周期方法”,你可以重写这些方法,以便于在运行过程中特定的阶段执行这些方法。你可以使用此生命周期图谱作为速查表。在下述列表中,常用的生命周期方法会被加粗。其余生命周期函数的使用则相对罕见。 挂…

第4章:决策树

停止 当前分支样本均为同一类时,变成该类的叶子节点。当前分支类型不同,但是已经没有可以用来分裂的属性时,变成类别样本更多的那个类别的叶子节点。当前分支为空时,变成父节点类别最多的类的叶子节点。 ID3 C4.5 Cart 过拟合 缺…

springcloud3 sleuth实现链路状态监控

一 slueth的介绍 1.1 slueth的作用 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个阶段请求都会形成一条复杂的分布式调用链路,链路中任何一环出现高延时或者错误都会引起…

通讯协议038——全网独有的OPC HDA知识一之聚合(七)最小值

本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化,以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…

MySQL环境安装

文章目录 MySQL环境安装1. 卸载1.1 卸载不要的环境1.2 检查卸载系统安装包 2. 安装2.1 获取mysql官方yum源2.2 安装mysql的yum源2.3 安装mysql服务 3. 登录(1)(2)(3) 4. 配置my.cnf MySQL环境安装 说明: 安装与卸载中,用户全部切换成为root&#xff0c…

基于YOLOv8+PyQt5开发的行人过马路危险行为检测告警系统(附数据集和源码下载)

系列文章目录 文章目录 系列文章目录前言欢迎来到我的博客!我很高兴能与大家分享关于基于YOLOv8的行人过马路危险行为检测告警系统的内容。 一、系统特点1. 采用最新最优秀的目标检测算法YOLOv82. 系统分别基于PyQt5开发了两种GUI图形界面,供大家学习使用…

ruoyi-vue-pro yudao 项目bpm模块启用及相关SQL脚本

目前ruoyi-vue-pro 项目虽然开源,但是bpm模块被屏蔽了,查看文档却要收费 199元(知识星球),价格有点太高了吧。 分享下如何启用 bpm 模块,顺便贴上sql相关脚本。 一、启用模块 修改根目录 pom.xml 启用模…

Day 29 C++ STL- 函数对象(Function Object)(仿函数)

文章目录 函数对象概念概念本质 函数对象使用特点示例 谓词——返回bool类型的仿函数谓词概念一元谓词——operator()参数只有一个的谓词二元谓词——operator()参数只有俩个的谓词 内建函数对象(Builtin Function Objects)内建函数对象概念注意算术仿函…

Flowable-边界事件-补偿边界事件

目录 定义图形标记XML内容使用示例演示demo 定义 补偿边界事件可以为所依附的节点附加补偿处理器,通过关联连接到补偿处理器(compensation handler)。补偿边界事件会在流程活动完成后根据情况(事务取消或者补偿中间事件触发&…

WAVE SUMMIT2023六大分会场同步开启,飞桨+文心大模型加速区域产业智能化!

由深度学习技术及应用国家工程研究中心主办、百度飞桨和文心大模型承办的WAVE SUMMIT深度学习开发者大会2023将于8月16日重磅来袭!届时上海、广州、深圳、成都、南昌和宁波六大分会场将同步开启! 分会汇聚区域产业大咖、科研机构专家、知名学者和技术大牛…