Python数据清洗分列函数,解决多字段数据分列的串行问题
目标:对多字段实现分列,有效解决串行问题
提取数据,分列“岗位属性”字段:
我们爬虫或清洗数据时经常会遇到多字段在同一列的情况,这里以字段“岗位属性”为例:
可以将多字段“岗位属性”分列为’工作地区’、‘工作经验要求’,‘学历要求’,‘招募人数’,‘发布时间’。如果数据非常整齐,可以使用split函数按照“|”进行分列,同Excel分列,比如’工作地区’字段全在第一个位置,因此成功分列。
split=[]
for i in range(len(Big_Data_Position)):split.append(Big_Data_Position['岗位属性'][i].split('\xa0\xa0|\xa0\xa0'))#split分列后是一个列表
pd.DataFrame(split)
由于部分数据字段在该行的缺失,导致行数据不整齐,数据直接按照‘|’分列会产生串行现象,比如第二例的本科、3-4年经验数据会在同一列,会产生串行现象。
串行的解决方法之一是根据这列数据的规律,使用循环判断的方法。如果这一列缺失该列数据,就利用空值进行填充。
函数体:
def clear(char_list,missing_data_filling_value):people_list=[]for i in Big_Data_Position['岗位属性']:#i为一个多字段字符串for j in i.split('\xa0\xa0|\xa0\xa0'):#这里\xa0\xa0|\xa0\xa0相当于|,是split分列的字符,j是一个列表for k in j:#k是列表里的一个字符if k in char_list:#char_list是根据数据规律的‘字’列表breakif k in char_list:#传入break掉的ki=j#用有效数据替换列表if type(i)==list:#如果没有替换就为空i=missing_data_filling_value#为空的话等于参数2,根据需要可以填充None、不确定,空字符串''等。people_list.append(i)return people_list
这里需要找到对应字段的规律,这里"招募人数"字段的规律是都含有“招”,因此,不论它在哪一列,在分列后的哪个位置,都可以进行准确的分列。
Big_Data_Position['招募人数']=clear(['招'])
Big_Data_Position['发布时间']=clear(['布'])
Big_Data_Position['学历要求']=clear(['本','专','士','中'])
清洗后的数据,成功分列:
Python数据清洗分列函数,解决多字段数据分列的串行问题相关推荐
- 【Python爬虫】从零开始爬取Sci-Hub上的论文(串行爬取)
[Python爬虫]从零开始爬取Sci-Hub上的论文(串行爬取) 维护日志 项目简介 步骤与实践 STEP1 获取目标内容的列表 STEP2 利用开发者工具进行网页调研 2.1 提取文章链接和分页链 ...
- python输入三行、能出来三行数据_python 读入多行数据的实例
一.前言 本文主要使用python 的raw_input() 函数读入多行不定长的数据,输入结束的标志就是不输入数字情况下直接回车,并填充特定的数作为二维矩阵 二.代码 def get2dlistda ...
- excel两列相同匹配第三列_Vlookup函数解决Excel大量数据匹配问题
先来讲讲使用这个函数的场景吧,最近遇到了一个难题,因为新老数据转移的问题,需要将老数据上传到新系统里,现在面临的是A表格内有设备编号,有设备属性,B表格内有设备安装位置,有设备编号,A表格内和B表格内 ...
- Python数据清洗之Dataframe中不同分隔符数据的清洗
发现问题 文本文件: test_file.txt id,电影名称,上映时间 001,<红海行动>,2018-02-16 002,<厉害了,我的国>,2018-03-02 003 ...
- mysql in 截断_MySQL十进制字段’数据在第1行的第x列被截断’问题
我有一个带小数(16,2)字段的mysql表.看起来像使用另一个十进制(16,2)字段字符串的加法操作可能会导致第1行问题的列x截断数据,这会在我的django项目中引发异常. 我知道该字段的乘法或除 ...
- python输入三行、能出来三行数据_python输入多行字符串的方法总结
python中输入多行字符串: 方法一:使用三引号 >>> str1 = '''Le vent se lève, il faut tenter de vivre. 起风了,唯有努力生 ...
- Python之input()函数用法,如何接收单行或多行的输入多个参数
单个输入 函数语法: input() a = input() 单行多个输入 函数语法: input().split() 其中split()内填写分隔符为什么(默认为空格) #输入三角形的三边长 a,b ...
- python绘制正态分布函数_Python数据清洗(三):异常值识别与处理
作者 | 刘顺祥 来源 | 数据分析1480 原文 |Python数据清洗--缺失值识别与处理 在<Python数据清洗(一):类型转换和冗余数据删除>和<Python数据清洗(二) ...
- 时间序列python复杂网络实例_基于时间序列数据的复杂网络重构
摘要:现实生活中,复杂系统俯首即是,和人们的生活息息相关,遍及的领域包括社会,经济,物理,生物和生态等.为了便于研究,复杂网络通常被看成是复杂系统的一种抽象描述,其中,网络中的单个节点对应于系统中的单 ...
最新文章
- mysql schedule event,MySQL 定时器event
- ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征、利用featuretools工具实现自动特征生成)
- Rancher Docker容器管理CPU/内存/网络/IO监控面板
- 如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接
- HALCON示例程序sequence_diff.hdev通过两张连续图像进行车辆流量监控
- 简单高效!浙大CAD腾讯哥大开源跨尺度的Transformer,显著涨点检测、分割、分类三大CV任务!...
- Physically Based Rendering,PBRT(光线跟踪:基于物理的渲染) 笔记
- Springboot 后台管理框架halo.kotlin
- 使用隐含参数testMappingSpeed排查GoldenGate抽取慢的步骤
- web.config转义符
- Anaconda下载的包在Spyder内导入报错
- openwrt增加内核模块的方法
- 完全背包问题 c语言
- 俞军老师:适合产品经理的10本书 | 2019收藏版
- 织梦dedecms怎么让图片自适应屏幕大小
- 徐思201771010132《面向对象程序设计(java)》第十四周学习总结
- Eclipse背景颜色设置
- 2018-7-16 2-1 分别由signed 和unsigned 限定的 char,short,int,long类型变量的取值范围
- Android4.4监听耳机插入处理方法
- kindEditor 富文本编辑器 使用介绍