当前位置: 首页 > news >正文

python excel数据处理_Excel的分列功能很强大?Python数据处理分析,pandas有更牛逼的...

6c0d6ce3-ca5b-49b0-afc0-25ec71d90113

转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的)

经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas

系列相关:

  • 懂Excel就能轻松入门Python数据分析包pandas(七):分列

前言

本系列有一篇文章是关于 pandas 实现 Excel 中的分列功能,后来有小伙伴问我,怎么实现 Excel 中固定列宽分列功能。这次就看看几个奇葩的数据案例。


案例1

某公司系统,有一 id 列,其中一部分是表示用户出生日期:

93459adc0ac24363b58df0f67e006a29
  • 怎么可以从中把日期值提取出来呢

Excel 上可以用分列功能:

f2a7f04f570c4136bd05fc44dfeb455a
6c0046b206e54263a06c3cb4907f8ba5
  • 结果会把数据分成3列

45f2c7b9-7034-4748-bb5e-79ca212652eb

pandas 中,我们不需要用 split ,而是直接用切片提取:

6e23445ae54d4bb7813538fe077edf9b
  • df.str[4:12],意思是,截取从第5个至第13个(不包含第13个)之间的内容

df.str[4:12] 相当于 df.str.slice(4,12)


案例2

有些系统有时候不会太人性化,比如,id 中的日期的起始位置是不固定的:

d91e84b5238f4d19912b2895107aadf5
  • 日期起始位置不固定,但如果从反向来说是固定的

pandas 中的文本切片与 Python 中的切片一样,因此我们可以这样处理:

734b9bd169254407b0f3cd72e264bfd8
  • 用负数表示从反方向计算截取范围

6767102d-ca9c-4b25-abb4-59d1c5aaf8df

案例3

这是一个"抬杠案例":

7caeec682ee44e61a14fdd42c4f342e3
  • 开始位置不固定,并且,日期之间还有不固定的分隔符号

我们当然可以用正则表达式提取,这次我选用一种特别的方式完成:

213447ff6eed4c5ea22b4d3cef44a7d1
  • 注意,我们使用了 itertools.compress ,要导入该模块。 import itertools

相信很多人不理解其中的原理,特别是其中的 sed 构造,看看下面的对应图:

18a38218a9934810959d55368e9bb8fa
  • itertools.compress() ,他的作用就是按照一个 bool 列表,把其中的 True 对应另外一个序列同位置上的元素给筛选出来

你 get 到了吗?


如果希望从零开始学习 pandas ,那么可以看看我的 pandas 专栏,现在已经到达第二阶段最后一个知识点——日期时间,学完这些你就能解决诸如走势波动的超高难度数据需求,快来学习吧。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • datetime转int_Python实例PDF转JPG
  • 艰难的shader系统
  • visual studio 怎么生成coredump文件_如何在docker容器中生成core dump
  • 对信息系统集成项目管理的一点看法
  • 电子工程师之家_「德语学习」电气、电子、电力什么区别?
  • javascript操作radio的几种方法
  • arcengine遍历属性表_【Python@arcpy】python操作Excel与属性表批处理
  • ExtremeTable的导出问题
  • 运动估计算法的程序实现_光流法--Lucas Kanade算法
  • 网吧系统母盘制作(系统分区整体考虑优化配置篇)
  • 点在多边形内_空间分析:2-4.Python生成泰森多边形
  • struts2的s:param标签使用
  • leetcode 打印_剑指 Offer 32 - I. 从上到下打印二叉树
  • 使用spring的MBeanExporter暴露hibernate的StatisticsService对象方法
  • springboot分页插件_Spring boot整合Mybatis Generator以及PageHelper源码分析
  • 深入了解以太坊
  • 《Java编程思想》读书笔记-对象导论
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Apache Spark Streaming 使用实例
  • ES6系列(二)变量的解构赋值
  • extract-text-webpack-plugin用法
  • httpie使用详解
  • PHP 的 SAPI 是个什么东西
  • python大佬养成计划----difflib模块
  • swift基础之_对象 实例方法 对象方法。
  • 服务器从安装到部署全过程(二)
  • 回顾 Swift 多平台移植进度 #2
  • 全栈开发——Linux
  • 删除表内多余的重复数据
  • 探索 JS 中的模块化
  • 微服务入门【系列视频课程】
  • 我这样减少了26.5M Java内存!
  • postgresql行列转换函数
  • 如何正确理解,内页权重高于首页?
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (C语言)球球大作战
  • (SpringBoot)第二章:Spring创建和使用
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (论文阅读11/100)Fast R-CNN
  • (强烈推荐)移动端音视频从零到上手(上)
  • (四)Controller接口控制器详解(三)
  • (四)图像的%2线性拉伸
  • . NET自动找可写目录
  • .axf 转化 .bin文件 的方法
  • .java 9 找不到符号_java找不到符号
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net 获取某一天 在当月是 第几周 函数
  • .net 使用ajax控件后如何调用前端脚本
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现