Pandas中数据清理、连接数据以及合并多个数据集的方法

一、简介

1.数据清理的重要性:在进行数据分析前,需进行数据清理,使每个观测值成一行、每个变量成一列、每种观测单元构成一张表格。

2.数据组合的必要性:数据整理好后,可能需要将多张表格组合才能进行某些分析,例如一张表保存公司名称,另一张表保存股票价格;单个数据集也可能分割成多个,如时间序列数据按日期分在不同文件中。

二:连接数据

连接数据时将某行或某列追加到数据中的操作,适用于数据被分成多分或需将计算结果追加到现有数据集的情况。

添加行:

        1.DataFrame连接:使用concat函数,需将多个 DataFrame 放入同一个列表中,连接后可通过ilocloc等方法取出子集。例如:row_concat = pd.concat([df1, df2, df3])

        2.DataFrame和Series连接:直接用concat连接时,由于 Series 无行索引,会添加新列且缺失值用 NaN 填充;若要将 Series 作为行连接,需创建 DataFrame 并指定列名。

        3.append函数:当只需向现有 DataFrame 追加一个对象时使用,可追加 DataFrame 或 Python 字典(追加字典需传入ignore_index = True)。例如:df1.append(new_row_df)、df1.append(data_dict,ignore_index = True)。

        4.重置索引:连接多个DataFrame时,通过ignore_index = True参数可忽略后面DataFrame的索引。

添加列:

        1.concat函数:与添加行类似,需传入axis=columns参数按列添加,可通过列名获取子集。例如:pd.concat([df1,df2,df3],axis = 'columns')。

        2.通过dataframe['列名'] = ['值']:无需调用函数,直接为DataFrame添加一列。例如:col_concat['new_col'] = ['n1,'n2','n3','n4']。

        3.通过dataframe['列名'] = Series对象:将 Series 对象作为新列添加到 DataFrame。

        4.重置索引:按列合并数据后,可重置列索引获得有序索引,如pd.concat([df1,df2,df3],axis='columns',ignore_index = True).

三:合并多个数据集

1.简介

        Pandas 中可通过pd.join和pd.merge实现类似数据库的 join 操作,merge更灵活,若依据行索引合并可考虑 join函数,concat连接数据时涉及 join参数(inner或outer)。

2.加载数据

        使用read_sql_query函数从数据库读取表,第一个参数为表名,第二个参数为数据库连接对象。例如 :tracks = pd.read_sql_query("SELECT * from tracks",con)

3.一对一合并

        涉及两个 DataFrame,连接的列不含重复值,通过on指定合并列,how指定连接方式(left、right、outer、inner,分别对应 SQL 中的左外连接、右外连接、全外连接、内连接)。

4.多对一合并

        例如使用 tracks 全部数据与其他表合并,可进行数据转换(如用to_timedelta转换时间单位)、计算平均值等操作;还可多表合并计算,如结合用户表、发票表、发票详情表计算每名用户的平均消费,通过assign方法创建新列,再按指定列分组求和排序。

5.join合并

        可依据两个 DataFrame 的行索引,或一个 DataFrame 的行索引与另一个的列索引合并。若有相同列名,需用lsuffix和rsuffix指定后缀;也可先设置行索引再合并。

四:总结

函数 / 方法特点对齐方式默认连接方式
concatPandas 函数,可垂直和水平连接两个或多个 pandas 对象只用索引对齐外连接(可设为内连接)
joinDataFrame 方法,只能水平连接两个或多个 pandas 对象靠被调用的 DataFrame 的列索引或行索引和另一个对象的行索引对齐左连接(可设为内连接、外连接、右连接)
mergeDataFrame 方法,只能水平连接两个 DataFrame 对象靠被调用的 DataFrame 的列或行索引和另一个 DataFrame 的列或行索引对齐内连接(可设为左连接、外连接、右连接)

         

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

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

相关文章

JavaSSM框架从入门到精通!第二天(MyBatis(一))!

一、 Mybatis 框架1. Mybatis 框架简介Mybatis 是 apache 的一个开源项目,名叫 iBatis ,2010 年这个项目由 apache 迁移到了 google,并命名为 Mybatis,2013 年迁移到了 GitHub,可以在 GitHub 下载源码。2. Mybatis 的下…

Linux下Mysql命令,创建mysql,删除mysql

在 Linux 系统下,您可以通过命令行来创建和删除 MySQL 数据库。以下是详细的操作步骤,包括创建和删除数据库、用户,以及常见的相关管理命令。1. 登录 MySQL在执行任何 MySQL 操作之前,需要先登录 MySQL。1.1 使用 root 用户登录 M…

假设检验的原理

假设检验是统计学中用于判断样本数据是否支持某个特定假设的方法。其核心思想是通过样本数据对总体参数或分布提出假设,并利用统计量来判断这些假设的合理性。假设检验的基本步骤如下:1. 假设(Hypothesis)在统计学中,假…

信号、内存共享等实现

信号&#xff08;signal&#xff09;#include <signal.h> #include <stdio.h> #include <unistd.h>void handler(int sig) {printf("收到信号: %d\n", sig); }int main() {signal(SIGUSR1, handler); // 注册用户自定义信号printf("进程 PI…

《从日常到前沿:AI 在教育、医疗、制造业的真实落地案例》文章提纲

引言&#xff1a;AI 落地的多元图景​简述 AI 从实验室走向实际应用的发展趋势​说明选择教育、医疗、制造业的原因 —— 覆盖民生与基础产业&#xff0c;落地场景具有代表性​AI 在教育领域的落地案例​个性化学习&#xff1a;如某在线教育平台利用 AI 分析学生学习数据&#…

决策树(1)

一、树模型与决策树基础决策树概念&#xff1a;从根节点开始一步步走到叶子节点得出决策&#xff0c;所有数据最终都会落到叶子节点&#xff0c;既可用于分类&#xff0c;也可用于回归。树的组成根节点&#xff1a;第一个选择点。非叶子节点与分支&#xff1a;中间决策过程。叶…

电视系统:开启视听新时代

在当今数字化浪潮席卷的时代&#xff0c;电视领域正经历着一场深刻的变革&#xff0c;而电视系统无疑是这场变革中的耀眼明星。简单来讲&#xff0c;电视系统就是互联网协议电视&#xff0c;它宛如一座桥梁&#xff0c;巧妙地利用宽带有线电视网&#xff0c;将多媒体、互联网、…

字节开源了一款具备长期记忆能力的多模态智能体:M3-Agent

猫头虎AI分享&#xff5c;字节开源了一款具备长期记忆能力的多模态智能体&#xff1a;M3-Agent 近年来&#xff0c;多模态大模型的发展迅猛&#xff0c;但如何赋予智能体类似人类的长期记忆能力&#xff0c;一直是研究中的核心挑战。字节跳动开源的 M3-Agent&#xff0c;正是面…

第十六届蓝桥杯青少组C++省赛[2025.8.10]第二部分编程题(6、魔术扑克牌排列)

参考程序&#xff1a;#include<bits/stdc.h> using namespace std; long long dp[105]; long long c(int n) {dp[0] 1;for(int i1; i< n; i){for(int j0; j<i; j){dp[i] dp[j] * dp[i -1-j];}}return dp[n]; } int main() {int n;cin >> n;cout <<c(n…

【实时Linux实战系列】实时平台下的图像识别技术

在当今数字化时代&#xff0c;图像识别技术已经广泛应用于各个领域&#xff0c;如自动驾驶、安防监控、智能医疗等。它通过计算机对图像进行分析和处理&#xff0c;从而实现对物体、场景或人的识别。实时Linux作为一种高效的实时操作系统&#xff0c;为图像识别技术提供了强大的…

IPD流程执行检查表

IPD流程执行检查表 稽查

Jmeter的安装与使用教程

基于jdk1.8版本的Jmeter的下载与安装和使用教程。 一.安装jmeter 官网下载就行下载压缩包解压就行 Jmeter下载官网&#xff1a;http://jmeter.apache.org/download_jmeter.cgi找到安装包的下载位置&#xff0c;解压进入文件夹的bin文件夹下jmeter.bat。二.配置环境变量 1、“此…

docker 数据卷、自定义镜像操作演示分享(第二期)

数据卷1.1、背景前面有个docker go web demo应用示例&#xff0c;每次为了部署go_web_demo工程&#xff0c; 需要将使用到的cp的命令将宿主主机内的go_web_demo目录下的代码文件&#xff08;一般是编译后的二进制执行文件&#xff09;复制到容器内部。 数据卷&#xff1a;将宿主…

Pandas 入门到实践:核心数据结构与基础操作全解析(Day1 学习笔记)

目录 一、Pandas 概述 1. 什么是 Pandas 二、核心数据结构 1. Series 索引 显示索引 隐式索引 创建方式 属性与方法 数据访问 索引访问 切片访问 布尔索引 2. DataFrame 创建方式 属性与数据访问 数据修改 三、索引操作 1. 索引类型 2. 核心索引方法 3. 切…

hadoop技术栈(九)Hbase替代方案

一、 核心替代方向 ‌云原生托管NoSQL服务&#xff1a;‌ ‌Google Cloud Bigtable&#xff1a;‌ 这是HBase在云端的“官方”替代品&#xff0c;兼容HBase API&#xff0c;底层存储和架构高度优化&#xff0c;提供高吞吐、低延迟、无缝扩展、完全托管的服务。‌如果追求兼容性…

深度解析 DDoS 攻击:运作机制与防御体系构建​

在网络安全领域&#xff0c;DDoS&#xff08;分布式拒绝服务&#xff09;攻击始终是企业与机构的 “心腹大患”。它通过操控大量 “傀儡主机” 发起海量请求&#xff0c;直接瘫痪目标服务器或网络链路&#xff0c;导致业务中断、用户流失甚至品牌声誉受损。今天&#xff0c;我们…

在linux系统中下载Andconda

下载前的准备工作 在开始下载 Anaconda 之前&#xff0c;做好充分的准备工作能避免后续出现不必要的麻烦&#xff0c;让整个过程更加顺畅。 确认系统架构 Linux 系统有 32 位和 64 位之分&#xff0c;不同架构对应的 Anaconda 安装包不同。你可以通过以下命令查看系统架构&a…

学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、UnrealBloomPass、FilmPass渲染通道),实现交互式 3D blob

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录一、&#x1f340;前言1.1 ☘️THREE.EffectComposer 后期处…

LLM - windows下的Dify离线部署:从镜像打包到无网环境部署(亲测,包含插件部署)

一、离线部署原理 通过Docker的save/load机制实现镜像的物理介质迁移,配合Docker Compose编排文件的环境适配能力,可在完全断网的环境中快速部署复杂应用。整个过程分为在线环境准备和离线环境还原两个阶段。 二、在线环境操作 1. 环境准备 在线环境:一台可以访问互联网的…

前端学习之后端小白java的一些理论知识(框架)

一、Spring Framework 和 Spring boot的区别 核心定位 Spring Framework&#xff1a;一个全面的Java应用开发框架&#xff0c;提供核心功能如IoC容器、AOP等Spring Boot&#xff1a;Spring Framework的扩展&#xff0c;专注于简化Spring应用的初始搭建和开发过程 配置方式 Spri…