pandas拆分某列中数字和单位

最近有csv文件需要处理,需要拆分里面的数字和单位做下数据的整理

以下是数据格式

想把单位拆分出来,单位有的是亿和万,需要对数据进行下处理

这是可以使用extract做下正则处理,拆分出来数字和单位

extract(正则拆分字符串)

extract文档地址:https://pandas.pydata.org/docs/reference/api/pandas.Series.str.extract.html?highlight=extract#pandas.Series.str.extract

Series.str.extract(pat, flags=0, expand=True)
总共三个参数,
path:传正则表达式
flags: 模块中的标志re,具体要看re的规则了
expand:如果为 True,则返回每个捕获组一列的 DataFrame。如果为 False,如果有一个捕获组,则返回 Series/Index;如果有多个捕获组,则返回 DataFrame

示例

    equity_data[['total_share_capital', 'total_share_capital_unit']] = equity_data['total_share_capital'].str. \extract('(?P<total_share_capital>\\d+\\.?\\d+)(?P<total_share_capital_unit>[\\u4e00-\\u9fa5]+)', expand=True)

这样数据列total_share_capital中就拆分为total_share_capitaltotal_share_capital_unit两列了

P<name>这个是正则分组命名用到的

apply(数据类型转换)

因为csv读入的数据都是字符串,所以需要数据类型转换

官方地址:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.apply.html?highlight=apply#pandas.DataFrame.apply
DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwargs)
func: 传入处理数据的函数
axis:处理数据的方向,0为列处理, 1为行处理
raw: False返回 Series, True返回ndarray 对象(性能可能会更好)
result_type: {‘expand’, ‘reduce’, ‘broadcast’, None}, default None (没用过,不知道到底啥情况)
axis=1这些仅在(列)时起作用:

expand : 类似列表的结果将变成列。

reduce :如果可能,返回一个系列,而不是扩展类似列表的结果。这与“扩展”相反。

broadcast : 结果将被广播到DataFrame的原始形状,原始索引和列将被保留。

默认行为(无)取决于应用函数的返回值:类似列表的结果将作为这些结果的系列返回。但是,如果应用函数返回一个系列,这些将扩展为列。
apply可以快速对某一列进行类型转换

equity_data['total_share_capital'] = equity_data['total_share_capital'].apply(lambda x: float(x))

这样就可以字符串转float

map(单位换算)

单位有的是亿和万,需要对数据进行下处理

万和亿转成亿,需要除以10000

首先定义个函数

def unit_charge(x, y):if y == '万':return x / 10000.0else:return x# 进行换算
equity_data['a_total_share_capital'] = list(map(lambda x, y: unit_charge(x, y),equity_data['a_total_share_capital'],equity_data['a_total_share_capital_unit']))

replace(替换无意义字符)

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.replace.html?highlight=replace#pandas.DataFrame.replace

DataFrame.replace(to_replace=None, value=NoDefault.no_default, inplace=False, limit=None, regex=False, method=NoDefault.no_default)
这个就不解释参数意义了

 equity_data = equity_data.replace(to_replace=np.nan, value='0')

【pandas小技巧】拆分某列中数字和单位相关推荐

  1. pandas 小技巧——用指定列的“非空值”值去填充另一列的“空值”

    举例:有df如下 >import numpy as np >df = pd.DataFrame({"name":["apple", "pe ...

  2. pandas fillna_6个提升效率的pandas小技巧

    文章来源:towardsdatascience 作者:B.Chen 翻译\编辑:Python大数据分析 pandas是python中常用的数据分析库,出现频率非常高,而且pandas功能之多让人咋舌, ...

  3. pandas apply lambda_一分钟一个Pandas小技巧(二)

    " 在逛Kaggle的时候发现了一篇不错的Pandas技巧,我将挑选一些有用的并外加一些自己的想法分享给大家.本系列虽基础但带仍有一些奇怪操作,粗略扫一遍,您或将发现一些您需要的技巧.&qu ...

  4. word文档通配符换行_职场小技巧|没想到word中的表格就可以排版图片大小

    不知道大家在工作当中有没有遇到这样的情况:在WORD文档中想插入图片,却不能保证大小格式一样怎么办?如果数量较少的话,我相信大家还是有办法解决的!比如可以先插入一张图片后设置统一的格式进使用快捷键F4 ...

  5. wps怎么加高亮_这些WPS表格小技巧可以在工作中省力N倍!

    原标题:这些WPS表格小技巧可以在工作中省力N倍! 既然是小技巧了,那就短小精悍.简单粗暴.好用顺手.能够化腐朽为神奇--总而言之,言而总之,本篇的内容主要是Excel的常用功能模块进行介绍和讲解,虽 ...

  6. rust原地复活_rust腐蚀游戏新手入门必知小技巧 Rust腐蚀游戏中的12个实用小技巧...

    rust腐蚀游戏新手入门必知小技巧,想必还有很多小伙伴还不太了解,下面小编给大家带来了Rust腐蚀游戏中的12个实用小技巧,一起来看看吧. rust腐蚀游戏新手入门必知小技巧 Rust腐蚀游戏中的12 ...

  7. php exec执行多条命令,小技巧:在PHP中调用多条shell指令

    原标题:小技巧:在PHP中调用多条shell指令 有时候,在持续集成的过程中,需要通过网页在目标服务器上执行shell指令,今天就列举一个实例进行讲解. 比如,我们需要能通过网页将SVN update ...

  8. excel for mac实用小技巧之两列姓名核对

    如何快速核对表二中的姓名在表一中有没有出现?Excel 2019 for Mac是一款简单实用的电子表格制作软件,一直深受广大Mac用户好评,如果要核对表二中的姓名在表一中有没有出现,一个公式马上搞定 ...

  9. pandas打印某一列_零基础学Python--不得不说的Pandas小技巧

    在前面的文章里,我介绍了如何使用Pandas去读写一个CSV文件,其实Pandas的功能还不仅仅限于此,它还可以读写Excel.Hdf.html.Json等多种文件格式.除此以外,Pandas还拥有众 ...

最新文章

  1. ASP.NET MVC WebAPI实现文件批量上传
  2. MySQL5.6多实例部署
  3. Hadoop DFS源码研究之---Hadoop RPC机制
  4. 【AD用户配置系列三】文件夹重定向为用户登录与注销加速
  5. 编译 php mysql 依赖包_MySQL 5.5.15源码包编译安装
  6. java飞鸽传书_feige 飞鸽传书源代码java 实现不错的联系网络编程的资料飞鸽传书的GUI(java实现) - 下载 - 搜珍网...
  7. 本周四直播预告(内含福利)丨 经典知识库:MGR原理介绍与案例分享
  8. MFC关闭对话框可以不析构吗_Win10关闭Defender和防火墙
  9. spring与jpa整合 简化persistence.xml配置文件 使用属性文件 数据源dbcp访问数据库...
  10. [iOS] UIScrollView (UIWebView) 截长屏功能实现
  11. Codewars笔记
  12. 这次把怎么做好一个PPT讲清-画图篇
  13. 剪切时中断,文件不见了怎样恢复?
  14. Html5 用什么软件开发好?
  15. 直播中常用的美颜sdk动态贴纸功能是什么?技术怎么实现的?
  16. 若依微服务版部署到IDEA(超详细,小白看了也能会)
  17. c语言中优先级劣后级,详解基金中优先级和劣后级的区别
  18. 解决“A problem occurred starting process 'command ''D:\AndroidSdk\..\mips64el-linux-android-strip''的问题
  19. 上海第二家K11项目动工;v2food获近3.5亿元B+轮融资;华彬快消品贵州功能饮料生产基地投产...
  20. 联通物联卡流量查询、充值的操作方法

热门文章

  1. 甘肃省兰州市谷歌卫星地图下载
  2. CentOS同步时间
  3. 简单批处理命令(1)
  4. Dicom RTSS ROI Physical PropertiesSequence (3006,00B0)的定义和使用
  5. camera驱动 v4l2/fimc
  6. 组合数学笔记之二——“二项式系数”
  7. 微分销功能设计_分销模式新玩法功能业务逻辑_OctShop
  8. 【English】外企常用口语
  9. 出现#include错误,请更新includePath
  10. 带你浅浅了解自动驾驶激光雷达