pandas 按相同站号重新整合出一个dataframe

情况1: 如果两个DataFrame都有一个共同的列(不是索引),你可以使用merge或join来整合它们。

import pandas as pd  # 创建两个示例DataFrame  
df1 = pd.DataFrame({  'ID': ['001', '002', '003'],  'A': ['foo', 'bar', 'baz']  
})  df2 = pd.DataFrame({  'ID': ['001', '002', '003'],  'B': ['one', 'two', 'three']  
})  # 使用merge按ID列整合两个DataFrame  
merged_df = pd.merge(df1, df2, on='ID', how='inner')  print(merged_df)

输出:

ID     A      B  
0  001   foo    one  
1  002   bar    two  
2  003   baz  three

情况2: 如果两个DataFrame的索引相同,你可以使用concat来将它们堆叠在一起。

# 假设两个DataFrame的索引相同  
df1 = pd.DataFrame({  'A': ['foo', 'bar', 'baz']  
}, index=['001', '002', '003'])  df2 = pd.DataFrame({  'B': ['one', 'two', 'three']  
}, index=['001', '002', '003'])  # 使用concat按索引整合两个DataFrame  
concat_df = pd.concat([df1, df2], axis=1)  print(concat_df)

输出:

A      B  
001  foo    one  
002  bar    two  
003  baz  three

情况3: 当使用pandas的merge函数时,如果两个DataFrame中的列名不匹配,你需要明确地指定哪些列应该被用作合并的键。这可以通过left_on和right_on参数来实现,这两个参数分别指定左侧DataFrame和右侧DataFrame中用作合并键的列名。

import pandas as pd  # 创建两个示例DataFrame,其中列名不匹配  
df1 = pd.DataFrame({  'ID_num': [1, 2, 3],  'Value_A': ['A1', 'A2', 'A3']  
})  df2 = pd.DataFrame({  'ID_str': ['1', '2', '3'],  'Value_B': ['B1', 'B2', 'B3']  
})  # 使用merge按ID列(尽管列名不同)整合两个DataFrame  
# 指定left_on和right_on参数来匹配列  
merged_df = pd.merge(df1, df2, left_on='ID_num', right_on='ID_str', how='inner')  print(merged_df)

输出:

ID_num Value_A ID_str Value_B  
0       1      A1      1      B1  
1       2      A2      2      B2  
2       3      A3      3      B3

在这个例子中,尽管df1中的ID_num列是整数类型,而df2中的ID_str列是字符串类型,但我们仍然可以通过left_on和right_on参数将它们作为合并键。how='inner’表示只保留两个DataFrame中都有匹配ID的行。

如果合并后你想要保留原始的列名,可以使用left_index=False和right_index=False参数,并可能需要在合并后重命名列。例如:

# 合并并重命名列以匹配原始列名  
merged_df = merged_df.rename(columns={'ID_num': 'ID', 'ID_str': 'ID'})  print(merged_df)

输出:

ID Value_A Value_B  
0   1      A1      B1  
1   2      A2      B2  
2   3      A3      B3

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

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

相关文章

docker 部署 mongodb 集群【建议收藏】

一、简洁搭建mognodb副本集 环境说明 我都是在云服务器上搭建的,CentOS7,Docker环境,版本忘记了。我就直接在同一台服务器上搭建三个mongodb即可。 1、基本信息如下 服务器地址 www.it307.top 副本集名称 rs 容器节点及端口映射 ​ m0…

数据结构——6.1 图的基本概念

第六章 图 6.1 图的基本概念 概念 图的概念:G由点集V和边集E构成,记为G(V,E),边集可以为空,但是点集不能为空 注意:线性表可以是空表,树可以是空树,但图不可以是空,即V一定是非空集…

leetcode:63.不同路径二

dp数组含义:由初始位置到最终位置路径个数 递推公式:如果没有障碍再进行递推公式 初始化:1.若起始位置和终止位置有障碍路径个数为0 2.dp[i][0] 1和dp[0][j] 1的for循环条件都需要加上一个and dp[i][0] 0和and dp[0][j] 0. 3.遍历顺序…

三维形体投影面积(c++题解)

题目描述 在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。 每个值 v grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。 现在,我们查看这些立方体在 xy 、yz 和 zx 平面上的投影。 投影 就…

案例:三台主机实现 级联复制

介绍:级联复制架构 级联复制架构 是一种特殊的主从结构,之前聊到的几种主从结构都只有两层,但级联复制架构中会有三层,关系如下: 也就是在级联复制架构中,存在两层从库,这实际上属于一主多从架…

Deepin基本环境查看(九)【被封印的创世神】

文章目录 - 相关文章目录1、概述2、Deepin中的创世神和管理员1)创世神root2)root被封印原因3)其他的神灵【管理员】 3、神殿管理【su与sudo】1)su(Switch User)2)sudo(Superuser Do&…

Open CASCADE学习|环形弹簧建模

目录 Draw Test Harness: C: 环形弹簧,也称为弓簧,是由拉伸弹簧和连接弹簧构成的。在结构上,环形弹簧通常包括端环、外环和内环,其主要参数包括弹簧的内径、外径和自由高度。环形弹簧的一个显著特点是&am…

计算机毕业设计SSM基于的冷链食品物流信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: vue mybatis Maven mysql5.7或8.0等等组成,B…

prometheus之redis_exporter部署

下载解压压缩包 mkdir /opt/redis_exporter/ cd /opt/redis_exporter/ wget http://soft.download/soft/linux/prometheus/redis_exporter/redis_exporter-v1.50.0.linux-amd64.tar.gz tar -zxvf redis_exporter-v1.50.0.linux-amd64.tar.gz ln -s /opt/redis_exporter/redis_…

网络原理(一)

💕"Echo"💕 作者:Mylvzi 文章主要内容:网络原理(一) 一. 应用层 应用层是和程序员联系最密切的一层,对于应用层来说,程序员可以自定义应用层协议,应用层的协议一般要约定好以下两部分内容: 根据需求,明确要传输哪些信…

[算法学习]

矩阵乘法 只有当左矩阵列数等于右矩阵行数,才能相乘N*M的矩阵和M*K的矩阵做乘法后矩阵大小为N*k矩阵乘法规则:第一个矩阵A的第 i 行与第二个矩阵的第 j 列的各M个元素对应相乘再相加得到新矩阵C[i][j]的值 整除 同余 同余的性质 线性运算,…

服务器渲染(SSR)-前端框架

Next.js、Nuxt.js和Remix都是基于Node.js比较流行三个前端框架,它们都基于JavaScript和React/Vue构建,并提供了一些额外的功能和工具来简化开发过程。 1. Next.js是一个基于React的前端框架,它提供了服务器渲染(SSR)和…

Android:Cordova,JavaScript操作设备功能

Cordova学习 Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。 Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。 Cordova是PhoneGap贡献给Apache后的开源项目,是从…

最适合新手的SpringBoot+SSM项目《苍穹外卖》实战—(一)项目概述

黑马程序员最新Java项目实战《苍穹外卖》,最适合新手的SpringBootSSM的企业级Java项目实战。 项目简介 《苍穹外卖》项目的定位是一款为餐饮企业(餐厅、饭店)定制的软件产品。该项目是一个在线外卖订购系统,顾客可以通过网站或者…

Java安全 CC链1分析(Lazymap类)

Java安全 CC链1分析 前言CC链分析CC链1核心LazyMap类AnnotationInvocationHandler类 完整exp: 前言 在看这篇文章前,可以看下我的上一篇文章,了解下cc链1的核心与环境配置 Java安全 CC链1分析 前面我们已经讲过了CC链1的核心ChainedTransf…

TestNG基础教程

TestNG基础教程 一、常用断言二、执行顺序三、依赖测试四、参数化测试1、通过dataProvider实现2、通过xml配置(这里是直接跑xml) 五、testng.xml常用配置方式1、分组维度控制2、类维度配置3、包维度配置 六、TestNG并发测试1、通过注解来实现2、通过xml来…

2.11.

线程 #include <myhead.h>#define SIP "192.168.0.114" #define SPORT 8888void *task(void *arg){printf("客户端连接\n");sleep(1);pthread_exit(NULL); }int main(int argc, const char *argv[]) {int sfd socket(AF_INET, SOCK_STREAM, 0);if(…

Makefile编译原理 make 中的路径搜索_2

一.make中的路径搜索 VPATH变量和vpath关键字同时指定搜索路径。 实验1 VPATH 和 vpath 同时指定搜索路径 mhrubuntu:~/work/makefile1/18$ tree . ├── inc │ └── func.h ├── main.c ├── makefile ├── src1 │ └── func.c └── src2 └── func.c mak…

快速手动完成 VS 编写脚本自动化:如何选取最高效的工作方式?

那些不懂技术的朋友们可能会觉得&#xff0c;写代码写脚本不就是敲敲键盘嘛&#xff0c;搞那么高科技做什么&#xff0c;直接手工点点鼠标不就完事了。 这种看法很常见&#xff0c;但实际情况要复杂得多。 首先&#xff0c;手工操作虽然对于短期和小规模的任务来说似乎更快&am…

【正在更新】从零开始认识语音识别:DNN-HMM混合系统语音识别(ASR)原理

摘要 | Abstract TO-BE-FILLED 1.前言 | Introduction 近期想深入了解语音识别(ASR)中隐马尔可夫模型(HMM)和深度神经网络-隐马尔可夫(DNN-HMM)混合模型&#xff0c;但是尽管网络上有许多关于DNN-HMM的介绍&#xff0c;如李宏毅教授的《深度学习人类语言处理》[1]&#xff0c;…