【pandas小技巧】拆分某列中数字和单位
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_capital
和total_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小技巧】拆分某列中数字和单位相关推荐
- pandas 小技巧——用指定列的“非空值”值去填充另一列的“空值”
举例:有df如下 >import numpy as np >df = pd.DataFrame({"name":["apple", "pe ...
- pandas fillna_6个提升效率的pandas小技巧
文章来源:towardsdatascience 作者:B.Chen 翻译\编辑:Python大数据分析 pandas是python中常用的数据分析库,出现频率非常高,而且pandas功能之多让人咋舌, ...
- pandas apply lambda_一分钟一个Pandas小技巧(二)
" 在逛Kaggle的时候发现了一篇不错的Pandas技巧,我将挑选一些有用的并外加一些自己的想法分享给大家.本系列虽基础但带仍有一些奇怪操作,粗略扫一遍,您或将发现一些您需要的技巧.&qu ...
- word文档通配符换行_职场小技巧|没想到word中的表格就可以排版图片大小
不知道大家在工作当中有没有遇到这样的情况:在WORD文档中想插入图片,却不能保证大小格式一样怎么办?如果数量较少的话,我相信大家还是有办法解决的!比如可以先插入一张图片后设置统一的格式进使用快捷键F4 ...
- wps怎么加高亮_这些WPS表格小技巧可以在工作中省力N倍!
原标题:这些WPS表格小技巧可以在工作中省力N倍! 既然是小技巧了,那就短小精悍.简单粗暴.好用顺手.能够化腐朽为神奇--总而言之,言而总之,本篇的内容主要是Excel的常用功能模块进行介绍和讲解,虽 ...
- rust原地复活_rust腐蚀游戏新手入门必知小技巧 Rust腐蚀游戏中的12个实用小技巧...
rust腐蚀游戏新手入门必知小技巧,想必还有很多小伙伴还不太了解,下面小编给大家带来了Rust腐蚀游戏中的12个实用小技巧,一起来看看吧. rust腐蚀游戏新手入门必知小技巧 Rust腐蚀游戏中的12 ...
- php exec执行多条命令,小技巧:在PHP中调用多条shell指令
原标题:小技巧:在PHP中调用多条shell指令 有时候,在持续集成的过程中,需要通过网页在目标服务器上执行shell指令,今天就列举一个实例进行讲解. 比如,我们需要能通过网页将SVN update ...
- excel for mac实用小技巧之两列姓名核对
如何快速核对表二中的姓名在表一中有没有出现?Excel 2019 for Mac是一款简单实用的电子表格制作软件,一直深受广大Mac用户好评,如果要核对表二中的姓名在表一中有没有出现,一个公式马上搞定 ...
- pandas打印某一列_零基础学Python--不得不说的Pandas小技巧
在前面的文章里,我介绍了如何使用Pandas去读写一个CSV文件,其实Pandas的功能还不仅仅限于此,它还可以读写Excel.Hdf.html.Json等多种文件格式.除此以外,Pandas还拥有众 ...
最新文章
- ASP.NET MVC WebAPI实现文件批量上传
- MySQL5.6多实例部署
- Hadoop DFS源码研究之---Hadoop RPC机制
- 【AD用户配置系列三】文件夹重定向为用户登录与注销加速
- 编译 php mysql 依赖包_MySQL 5.5.15源码包编译安装
- java飞鸽传书_feige 飞鸽传书源代码java 实现不错的联系网络编程的资料飞鸽传书的GUI(java实现) - 下载 - 搜珍网...
- 本周四直播预告(内含福利)丨 经典知识库:MGR原理介绍与案例分享
- MFC关闭对话框可以不析构吗_Win10关闭Defender和防火墙
- spring与jpa整合 简化persistence.xml配置文件 使用属性文件 数据源dbcp访问数据库...
- [iOS] UIScrollView (UIWebView) 截长屏功能实现
- Codewars笔记
- 这次把怎么做好一个PPT讲清-画图篇
- 剪切时中断,文件不见了怎样恢复?
- Html5 用什么软件开发好?
- 直播中常用的美颜sdk动态贴纸功能是什么?技术怎么实现的?
- 若依微服务版部署到IDEA(超详细,小白看了也能会)
- c语言中优先级劣后级,详解基金中优先级和劣后级的区别
- 解决“A problem occurred starting process 'command ''D:\AndroidSdk\..\mips64el-linux-android-strip''的问题
- 上海第二家K11项目动工;v2food获近3.5亿元B+轮融资;华彬快消品贵州功能饮料生产基地投产...
- 联通物联卡流量查询、充值的操作方法