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

【Pandas】数据处理方法

1.数据拆分

pandas.Series.str.extract()

Series.str.extract(pat, flags=0, expand=True)[source]

extract(提取)

参数

pat: 带分组的正则表达式。

flag: re模块中的标志,例如re.IGNORECASE,修改正则表达式匹配的大小写、空格等

expand: 默认为True,如果为 True,则返回每个捕获组一列的 DataFrame。如果为 False,则如果有一个捕获组则返回 Series/Index,如果有多个捕获组则返回 DataFrame

例子
jobs_df['site'].head()
0      北京 海淀区 西山
1     北京 朝阳区 酒仙桥
2     北京 朝阳区 十里堡
3    北京 石景山区 八宝山
4     北京 朝阳区 三元桥
Name: site, dtype: object

使用extract提取地址关键词,这里的?P<>是为组命名,这样就能自动给定columns

jobs_df['site'].str.extract(r"(?P<city>\S{,})\s{0,3}(?P<part>\S{,})\s{0,3}(?P<street>\S{,})").head()
	city	part	street
0	北京	海淀区	西山
1	北京	朝阳区	酒仙桥
2	北京	朝阳区	十里堡
3	北京	石景山区	八宝山
4	北京	朝阳区	三元桥

2.数据分箱

pandas.cut

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise', ordered=True)
参数

x: 要分箱的一维数组或者序列。

bins: 整数或者序列,定义分段的边界。整数表示等分的段数,序列表示每个分段的具体边界。

right: 判断右边界是否闭合,默认为True。如果right == True, 则 bins = [1, 2, 3, 4] 箱子为 (1,2], (2,3], (3,4]。(这个参数只影响右边界)

labels: 箱子的标签

例子
bj_df.head()姓名	出生年月	            单位名称	           积分分值 年龄
公示编号					
202300001	张浩	1977-02-01	北京首钢股份有限公司	        140.05	45
202300002	冯云	1982-02-01	中国人民解放军空军二十三厂	134.29	40
202300003	王天东	1975-01-01	中建二局第三建筑工程有限公司	133.63	48
202300004	陈军	1976-07-01	中建二局第三建筑工程有限公司	133.29	46
202300005	樊海瑞	1981-06-01	中国民生银行股份有限公司	    132.46	41
bj_df['年龄段'] = 
pd.cut(x=bj_df.年龄,bins=[35,40,45,50,60],right=False,labels=['35-40','40-45','45-50','50-60'])公示编号  	姓名	出生年月	          单位名称	           积分分值 age  box
0	202300001	张浩	1977-02-01	北京首钢股份有限公司	        140.05	45	40-45
1	202300002	冯云	1982-02-01	中国人民解放军空军二十三厂	134.29	40	35-40
2	202300003	王天东	1975-01-01	中建二局第三建筑工程有限公司	133.63	48	45-50
3	202300004	陈军	1976-07-01	中建二局第三建筑工程有限公司	133.29	46	45-50
4	202300005	樊海瑞	1981-06-01	中国民生银行股份有限公司	    132.46	41	40-45# 与bins=4的结果一样
bj_df['box'] = pd.cut(bj_df['age'], bins=4, right = False, labels=['35-40','40-45','45-50','50-60'])
bj_df.head()

http://www.lryc.cn/news/356812.html

相关文章:

  • 【ArcGIS For JS】前端geojson渲染行政区划图层并加标签
  • Spring AOP原理详解:动态代理与实际应用
  • 死锁的四个必要条件
  • 源网络地址转换SNAT
  • 【算法】平衡二叉搜索树的左旋和右旋
  • 介绍Django Ninja框架
  • 使用uniapp内置组件checkbox-group所遇到的问题
  • 嵌入式学习记录5.23(超时检测、抓包分析)
  • Linux|如何在 awk 中使用流控制语句
  • OceanBase数据库诊断调优,与高可用架构——【DBA从入门到实践】第八期
  • LLVM技术在GaussDB等数据库中的应用
  • 【SQL学习进阶】从入门到高级应用(三)
  • 迷你手持小风扇哪个品牌续航强?五款强续航迷你手持小风扇推荐!
  • SpringBoot 微服务中怎么获取用户信息 token
  • npm包-fflate
  • 华为WLAN无线组网技术与解决方案
  • 闲鱼电商运营高级课程,一部手机学会闲鱼开店赚钱
  • Yann LeCun 和 Elon Musk 就 AI 监管激烈交锋
  • C++重点基础知识汇总大全
  • 【Linux】线程安全及锁的使用
  • 深入解析绘图范式:面向对象与直接操作的较量
  • 英特尔LLM技术挑战记录
  • 在 MFC 中 UNICODE 加 _T 与 L 长字符串,有什么区别?
  • synopsys EDA 2016 合集 下载
  • CentOS 7如何使用systemctl管理应用
  • 武大深度学习期末复习-常见神经网络概念
  • Leetcode3161. 物块放置查询(Go语言的红黑树 + 线段树)
  • 基于springboot实现医疗挂号管理系统项目【项目源码+论文说明】
  • ScrumMaster认证机构及CSM、PSM、RSM价值比较
  • 加氢站压缩液驱比例泵放大器