采坑 - 字符串的 "" 与 pd.isnull()

主要是记录一个采坑的过程. 当字符串 的 " " 和 pandas 中的 " " 不是一个概念 .

需求

一个小伙伴要用 pandas 来处理一个, 表格填充的的问题, 脱敏数据大致是这样的.

区域名称 门店 店组
龙华新城大区 壹城中心店 壹城中心一组
益田大区 皇岗口岸店 皇岗口岸一组
双龙大区 龙城中央旗舰店 AAA店
深西大区 德佑麒麟A组
A宏畅房地产经纪有限责任公司 A地产经纪有限责任公司门店
宏畅房地产经纪有限责任公司 B地产经纪有限责任公司门店
东部 微地产瑞凯洪湖A店
景恒房地产有限公司 D景恒房地产有限公司门店
龙华新城大区 丰润花园店 丰润花园一组

现在想取一个 门店 字段, 新增或者覆盖 都可以, 取的逻辑是: "获取 门店 字段的值, 如果是值, 则选择 店组 字段的值.

咋一看, (不考虑性能, 只管实现哈), 这不简单嘛,都不想考虑用什么 apply, 遍历 DataFrame 的每一行, 然后判断就好了.

踩过过程

通常我是先测试下, 与其说是测试, 其实就是百度下api, 根本就记不住的, 要是没有搜索引擎, 写代码立刻就废掉了.

先来波测试

import pandas as pd
df = pd.DataFrame({

    "a":[1,2,3,4,5,6],
    "门店": ["甲店", "", "", "丙店", "", "丁店"],
    "店组": ["DD", "", "AA", "", "丁店", ""]
})

print(df)
a   门店      店组
0   1   甲店  DD
1   2
2   3        AA
3   4   丙店
4   5        丁店
5   6   丁店  

为了演示方便, 这里选择新增 "新门店"字段, 不覆盖原来的哦 (如果 "门店", 没有值, 就取 "店组" 的值)

for 行号, 行值 in df.iterrows():   

    df.loc[行号, "新门店"] =  行值['门店'] or 行值["店组"]

print(df)
    a   门店  店组  新门店
0   1   甲店  DD    甲店
1   2
2   3         AA    AA
3   4   丙店        丙店
4   5         丁店  丁店
5   6   丁店        丁店

测试完美通过, 然后就开始整了.

翻车1次

原文地址:https://www.cnblogs.com/chenjieyouge/p/12424000.html

时间: 2024-10-11 07:35:59

采坑 - 字符串的 "" 与 pd.isnull()的相关文章

采坑:python base64

需求:  读取文本内容,对字符串进行base64加密 >>> str = 'aaaaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbb\ncccccccccccccccccccccccccc' >>> encodeStr = base64.encodestring(str) >>> encodeStr 'YWFhYWFhYWFhYWFhYWFhYWFhYQpiYmJiYmJiYmJiYmJiYmJiYmJiYmJi

jumserver 3.0安装及采坑记录

参考  https://blog.51cto.com/14226596/2420441 以及官方文档 https://www.jishuchi.com/read/Jumpserver-148/2102 补充笔者采坑处理 1.安装python3环境 1>更新epel-release $yum install -y python36 python36-devel python36-pip 2>安装python后,还要修改以下两个文件内容: a)/usr/bin/yum 将第一行 #!/usr/bi

phoenegap3.5 采坑

上周5晚上在家看Node.js视频的时候,老大来一条短信让研究下 phoengap打包一个web网站. 遂 陷入了phonegap的深渊中. phoengap很早开始使用 cli模式安装开发环境 ,借助node npm来管理 环境要求: JAVA Android SDK Ant Node.js 以上几个的下载地址就不提供. 主要是这中间一些坑,装好上面的环境 需要自己手动配置环境变量, 痛苦由此开始啊!!!! 多次操作修改环境变量 都没能成功.多次卸载,遇到各种BUG. 在修改环境变量的时候 往

oracle rac 扩展磁盘采坑记录

oracle rac 磁盘扩展采坑记录: 系统环境:VMware esxi oracle rac 11.2.0.4 昨天扩展了asm的磁盘组,FRA磁盘组和DATA磁盘组,我添加了一块硬盘320g,200g扩展到了DATA组,120g扩展到了FRA组.因为oracle使用的是raw裸设备,扩展第一个磁盘的时候,正常进行,不用关机. 坑1:但是扩展FRA组的时候,需要关机才能找得到第二个设备.重启之后扩展正常,建议扩展磁盘一次扩展到一个组. 坑二:今天我看见系统盘空间不够了,就扩展了一下系统盘空间

websocket采坑记

项目中想用做个实时统计,像是110警情大屏那种,所以用到了websocket,结果踩了不少坑,再次记录下. 环境:spring,springMVC(4.2.4.RELEASE),tomcat7 问题1:session对象是不一样的 http的时候,是javax.servlet.http.HttpSession 而websocket的时候javax.websocket.Session http的session一般用于保存用户信息,根据用户,http请求的时候携带Cookie:JSESSIONID,

VS2015+MySql+EF6采坑经验总结

背景:VS2015+MySql+EF6(DB First) 采坑顺序:按照以前的记忆,操作依次如下: 1,安装 MySQL Connector/NET(不用想,装最新的,8.0.12) 2.安装 MySQL for Visual Studio (最新1.2.8) 3.在VS2015创建WEB项目 4.nuget 安装MySql.Data.Entity (最新6.10.8,会自动安装依赖包MySql.Data 6.10.8 和 EF 6.2.0) 雷区:下来,当然的要创建[ADO.NET实体数据模

github 采坑记 —— 项目提交到github后部分文件缺失

在使用git push到GitHub上后,发现部分文件缺失,如下图所示: 可以看到dist文件夹为 运行 npm run build 之后打包生成的文件,node_modules 文件也是缺失的 导致文件没有提交的原因是在项目根目录下有个文件: 打开文件: 可以看再提交时有些文件被忽略了,可以将相应代码删除,然后重新push到GitHub上 想要的文件就提交上去了! 多多采坑,多多总结,多多练习~~~ 原文地址:https://www.cnblogs.com/amy2017/p/10087455

Laravel Homestead 安装与采坑

1.安装链接 教程https://laravel-china.org/docs/laravel-development-environment/5.5/development-environment-windows/938 2.采坑https://laravel-china.org/articles/4082/a-wonderful-problem-encountered-in-the-use-of-vagrant 解决方法:这个解决方法可以,我改成了 GBK,在 Windows 10 下. 

Axios采坑之路

Axios采坑之路 POST请求设置Content-Type 由于后端采用的是form表单形式上送参数,需要设置Content-Type axios设置如下 const _axios = axios.create(config); _axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;'; api调用 import { request } from '@plugin/axios' exp