我正在尝试使用涉及搜索另一个DataFrame的特定条件来替换df DataFrame的air_store_id列中的NaN值:

data = { 'air_store_id': [ 'air_a1', np.nan, 'air_a3', np.nan, 'air_a5' ],

'hpg_store_id': [ 'hpg_a1', 'hpg_a2', np.nan, 'hpg_a4', np.nan ],

'Test': [ 'Alpha', 'Beta', 'Gamma', 'Delta', 'Epsilon' ]

}

df = pd.DataFrame(data)

display(df)

当在df.air_store_id中找到NaN时,我想使用df.hpg_store_id中的值(如果有)将其与另一个名为id_table_df的 dataframe 的同一列进行比较,并检索其air_store_id.

这是id_table_df的样子:

ids_data = { 'air_store_id': [ 'air_a1', 'air_a4', 'air_a3', 'air_a2' ],

'hpg_store_id': [ 'hpg_a1', 'hpg_a4', 'hpg_a3', 'hpg_a2' ] }

id_table_df = pd.DataFrame(ids_data)

display(id_table_df)

简而言之,对于df.air_store_id中的每个NaN,通过将df.hpg_store_id与id_table_df.hpg_store_id进行比较,将其替换为id_table_df.air_store_id中的相应等价物.

在这种情况下,id_table_df最终用作查找表.产生的DataFrame如下所示:

我使用以下指令进行了tried to merge them的操作,但引发了错误:

df.loc[df.air_store_id.isnull(), 'air_store_id'] = df.merge(id_table_df, on='hpg_store_id', how='left')['air_store_id']

错误信息:

KeyError Traceback (most recent call last)

~\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)

2441 try:

-> 2442 return self._engine.get_loc(key)

2443 except KeyError:

...

...

...

KeyError: 'air_store_id'

问题1:我该如何完成?

问题2:是否有办法同时对这两列(air_store_id和hpg_store_id)执行此操作?如果可能的话,我不必为每个列分别运行合并.

python将第一列替换_python-通过将另一列与第二个DataFrame进行比较来替换一列中的值...相关推荐

  1. python程序设计第一章答案_Python《学习手册:第一章-习题》

    人们选择Python的六大主要原因是什么? 软件质量:Python注重可读性.一致性和软件质量.Python代码的设计致力于可读性,因此具备了比传统脚本语言更优秀的可重用性和可维护性. Python的 ...

  2. python程序设计第一章答案_Python语言程序程序设计-第一章习题解答

    作为一名非计算机专业毕业的学生,一直想学Python用来解决工作中遇到的问题,但是对计算机一直摸不到好的门路,于是买到了Python语言程序程序设计这本书,用做习题的形式,积累自己的学习成果,相信不怕 ...

  3. python爬虫怎么爬小说_Python 新手] 爬虫练习:爬取起点中文网的小说排行并存入 excel 表格中...

    使用的 python 库 1.request 库,用于向服务器发起请求信息. 2.lxml 库,用于解析服务器返回的 HTML 文件. 3.time 库,设置爬取时间差,防止短时间内多次页面请求而被限 ...

  4. python字符加密2编程_python的字符串操作和*加密解密

    一.字符串操作 1.字符串大量的系统提供的操作函数 image.png 2.字符串的编码解码处理 将计算机中的字符串按照一定的顺序表示成二进制数据的过程 python3中:字符(str):字节(byt ...

  5. python处理数据快吗_python (七、Numpy高效数据处理)

    Numpy的主要作用是进行矩阵运算 在使用时首先要导入包 import numpy as np np.version.version 用来查看版本信息 # 构建一维数组 n1=np.array([1, ...

  6. Python数据分析第一课:Pandas初入门

    数据分析如下所示共6步,而使用Python可以帮助我们完成前5步. 一. Pandas简介 Pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库 ...

  7. 【进阶Python】第一讲:开篇

    前言 2015年,本科毕业的那个暑假我开始疯狂的投递简历,希望找一份数据分析与数据挖掘相关的实习工作.直到有一家公司的面试官问到我:"你会Python吗?",我当时一脸疑惑,因为, ...

  8. python字符串变量替换_python字符串替换第一个字符串的方法

    Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾. # 例1:字符串截取 str = '1234567 ...

  9. python 字符串替换_python字符串替换第一个字符串的方法

    Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾. # 例1:字符串截取 str = '1234567 ...

最新文章

  1. Android事件机制:事件传递和消费
  2. 明明白白学C#0.1.2 什么是编程语言
  3. Boost:易变的bimap双图的测试程序
  4. TFS 表字典(部分)
  5. [UE4]更新UI的三种方式
  6. 阿里巴巴飞天大数据架构体系与Hadoop生态系统
  7. 炫界 (978) -(建工发现应用克隆漏)_除了DMA,这些漏损点检测与漏损区域识别技术你知道么?...
  8. g++ linux 编译开栈_使用g++编译器扩大程序可用栈空间
  9. mongodb备份和恢复:mongodump/mongorestore ( 二)
  10. Android NDK开发之 NEON 矩阵转置,矩阵乘法实现
  11. js学习(六)- js对象创建
  12. 自动生成getter,setter方法的插件lombok
  13. Android各控件绚丽Dome下载
  14. html文件类型怎么改,更改文件类型,教您文件类型如何更改
  15. 开发者头条(一):导航页
  16. 云研发 IDE Uncode:演示版发布(欢迎加入开发)
  17. 罗振宇4小时跨年演讲精华版:大环境里的7个行动策略
  18. uni-app 161朋友圈查看权限
  19. IOS H5页面滑动过于频繁出现短暂白屏
  20. 带宽的定义标准是什么

热门文章

  1. 挑战程序设计竞赛2:算法和数据结构 (渡部有隆 著)
  2. MyEclipse中的web项目之前有个感叹号
  3. 企业轻资产化趋势难挡,易点租适时而起未来可期
  4. linux下安装nagios
  5. 如何让LINUX程序运行在多CPU?
  6. HTTP 协议详解--转
  7. C# 字符串大小写混合转换(同时进行)
  8. 【读书笔记】代码可为维护性标准(一)
  9. Linux命令:tail
  10. 赴美工作常识(Part 4 - 面试)