目标:对多字段实现分列,有效解决串行问题

提取数据,分列“岗位属性”字段:

我们爬虫或清洗数据时经常会遇到多字段在同一列的情况,这里以字段“岗位属性”为例:


可以将多字段“岗位属性”分列为’工作地区’、‘工作经验要求’,‘学历要求’,‘招募人数’,‘发布时间’。如果数据非常整齐,可以使用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数据清洗分列函数,解决多字段数据分列的串行问题相关推荐

  1. 【Python爬虫】从零开始爬取Sci-Hub上的论文(串行爬取)

    [Python爬虫]从零开始爬取Sci-Hub上的论文(串行爬取) 维护日志 项目简介 步骤与实践 STEP1 获取目标内容的列表 STEP2 利用开发者工具进行网页调研 2.1 提取文章链接和分页链 ...

  2. python输入三行、能出来三行数据_python 读入多行数据的实例

    一.前言 本文主要使用python 的raw_input() 函数读入多行不定长的数据,输入结束的标志就是不输入数字情况下直接回车,并填充特定的数作为二维矩阵 二.代码 def get2dlistda ...

  3. excel两列相同匹配第三列_Vlookup函数解决Excel大量数据匹配问题

    先来讲讲使用这个函数的场景吧,最近遇到了一个难题,因为新老数据转移的问题,需要将老数据上传到新系统里,现在面临的是A表格内有设备编号,有设备属性,B表格内有设备安装位置,有设备编号,A表格内和B表格内 ...

  4. Python数据清洗之Dataframe中不同分隔符数据的清洗

    发现问题 文本文件: test_file.txt id,电影名称,上映时间 001,<红海行动>,2018-02-16 002,<厉害了,我的国>,2018-03-02 003 ...

  5. mysql in 截断_MySQL十进制字段’数据在第1行的第x列被截断’问题

    我有一个带小数(16,2)字段的mysql表.看起来像使用另一个十进制(16,2)字段字符串的加法操作可能会导致第1行问题的列x截断数据,这会在我的django项目中引发异常. 我知道该字段的乘法或除 ...

  6. python输入三行、能出来三行数据_python输入多行字符串的方法总结

    python中输入多行字符串: 方法一:使用三引号 >>> str1 = '''Le vent se lève, il faut tenter de vivre. 起风了,唯有努力生 ...

  7. Python之input()函数用法,如何接收单行或多行的输入多个参数

    单个输入 函数语法: input() a = input() 单行多个输入 函数语法: input().split() 其中split()内填写分隔符为什么(默认为空格) #输入三角形的三边长 a,b ...

  8. python绘制正态分布函数_Python数据清洗(三):异常值识别与处理

    作者 | 刘顺祥 来源 | 数据分析1480 原文 |Python数据清洗--缺失值识别与处理 在<Python数据清洗(一):类型转换和冗余数据删除>和<Python数据清洗(二) ...

  9. 时间序列python复杂网络实例_基于时间序列数据的复杂网络重构

    摘要:现实生活中,复杂系统俯首即是,和人们的生活息息相关,遍及的领域包括社会,经济,物理,生物和生态等.为了便于研究,复杂网络通常被看成是复杂系统的一种抽象描述,其中,网络中的单个节点对应于系统中的单 ...

最新文章

  1. mysql schedule event,MySQL 定时器event
  2. ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征、利用featuretools工具实现自动特征生成)
  3. Rancher Docker容器管理CPU/内存/网络/IO监控面板
  4. 如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接
  5. HALCON示例程序sequence_diff.hdev通过两张连续图像进行车辆流量监控
  6. 简单高效!浙大CAD腾讯哥大开源跨尺度的Transformer,显著涨点检测、分割、分类三大CV任务!...
  7. Physically Based Rendering,PBRT(光线跟踪:基于物理的渲染) 笔记
  8. Springboot 后台管理框架halo.kotlin
  9. 使用隐含参数testMappingSpeed排查GoldenGate抽取慢的步骤
  10. web.config转义符
  11. Anaconda下载的包在Spyder内导入报错
  12. openwrt增加内核模块的方法
  13. 完全背包问题 c语言
  14. 俞军老师:适合产品经理的10本书 | 2019收藏版
  15. 织梦dedecms怎么让图片自适应屏幕大小
  16. 徐思201771010132《面向对象程序设计(java)》第十四周学习总结
  17. Eclipse背景颜色设置
  18. 2018-7-16 2-1 分别由signed 和unsigned 限定的 char,short,int,long类型变量的取值范围
  19. Android4.4监听耳机插入处理方法
  20. kindEditor 富文本编辑器 使用介绍

热门文章

  1. CSS-涟漪效果的按钮
  2. 探究安全帽识别系统的原理及应用
  3. 二层交换三层交换路由器区别
  4. 苏姿丰承认AMD减少供应!为了让CPU显卡价格保持高位
  5. python sanic_Sanic框架初识
  6. ReactNative 网络请求失败
  7. U 盘安装 CentOS7 时盘符和安装源不可用问题
  8. 狗云输入法是个概念车,但是真的云
  9. matlab 传输速率,大量数据爆发,Xilinx FPGA怎么提高数据传输速率?
  10. Java8集合List排序、筛选、求和、求最大值、平均值、List转Map