Pandas基本文本数据的处理方法
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容主要讲解"Pandas基本文本数据的处理方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Pandas基本文本数据的处理方法"吧!1.# 系列和索
千家信息网最后更新 2025年12月02日Pandas基本文本数据的处理方法
本篇内容主要讲解"Pandas基本文本数据的处理方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Pandas基本文本数据的处理方法"吧!
1.# 系列和索引配有一组字符串处理方法,使它容易操作数组的每个元素。或许最重要的是,这些方法自动排除失踪/ NA值。这里有一些字符串方法的例子:In [1]: s = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca', np.nan, 'CABA', 'dog', 'cat'])#小写方法In [2]: s.str.lower()Out[2]: 0 a1 b2 c3 aaba4 baca5 NaN6 caba7 dog8 catdtype: object#大写方法In [3]: s.str.upper()Out[3]: 0 A1 B2 C3 AABA4 BACA5 NaN6 CABA7 DOG8 CATdtype: object#显示字符串的长度In [4]: s.str.len()Out[4]: 0 1.01 1.02 1.03 4.04 4.05 NaN6 4.07 3.08 3.0dtype: float64In [5]: idx = pd.Index([' jack', 'jill ', ' jesse ', 'frank'])#去除两边的空格In [6]: idx.str.strip()Out[6]: Index([u'jack', u'jill', u'jesse', u'frank'], dtype='object')#去除左边的空格In [7]: idx.str.lstrip()Out[7]: Index([u'jack', u'jill ', u'jesse ', u'frank'], dtype='object')#去除右边的空格In [8]: idx.str.rstrip()Out[8]: Index([u' jack', u'jill', u' jesse', u'frank'], dtype='object')# df.columns一个index对象,所以我们科研用.str存取器In [9]: df = pd.DataFrame(randn(3, 2), columns=[' Column A ', ' Column B '], ...: index=range(3)) ...: In [10]: dfOut[10]: Column A Column B 0 0.017428 0.0390491 -2.240248 0.8478592 -1.342107 0.368828#去除列名的空格In [11]: df.columns.str.strip()Out[11]: Index([u'Column A', u'Column B'], dtype='object')#列名小写In [12]: df.columns.str.lower()Out[12]: Index([u' column a ', u' column b '], dtype='object')#将列名先去空,再小写,再将空格替换为"_"In [13]: df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_')In [14]: dfOut[14]: column_a column_b0 0.017428 0.0390491 -2.240248 0.8478592 -1.342107 0.3688282.#拆分和替换字符In [15]: s2 = pd.Series(['a_b_c', 'c_d_e', np.nan, 'f_g_h'])#以_拆分,返回的是列表In [16]: s2.str.split('_')Out[16]: 0 [a, b, c]1 [c, d, e]2 NaN3 [f, g, h]dtype: object#元素可以通过str.get()方法来获取In [17]: s2.str.split('_').str.get(1)Out[17]: 0 b1 d2 NaN3 gdtype: object#也可以通过str[]来获取In [18]: s2.str.split('_').str[1]Out[18]: 0 b1 d2 NaN3 gdtype: object#可以通过设置expand参数直接返回一个数据框In [19]: s2.str.split('_', expand=True)Out[19]: 0 1 20 a b c1 c d e2 NaN None None3 f g h#可以通过设置n参数来设置分割点的个数In [20]: s2.str.split('_', expand=True, n=1)Out[20]: 0 10 a b_c1 c d_e2 NaN None3 f g_h#rsplit想对与split来说是从相反的方向(reverse direction)来分割In [21]: s2.str.rsplit('_', expand=True, n=1)Out[21]: 0 10 a_b c1 c_d e2 NaN None3 f_g h#像replace和findall这样的方法可以使用正则表达式In [22]: s3 = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca', ....: '', np.nan, 'CABA', 'dog', 'cat']) ....: In [23]: s3Out[23]: 0 A1 B2 C3 Aaba4 Baca5 6 NaN7 CABA8 dog9 catdtype: objectIn [24]: s3.str.replace('^.a|dog', 'XX-XX ', case=False)Out[24]: 0 A1 B2 C3 XX-XX ba4 XX-XX ca5 6 NaN7 XX-XX BA8 XX-XX 9 XX-XX tdtype: object3.#通过str[]来索引In [29]: s = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca', np.nan, ....: 'CABA', 'dog', 'cat']) ....: In [30]: s.str[0]Out[30]: 0 A1 B2 C3 A4 B5 NaN6 C7 d8 cdtype: objectIn [31]: s.str[1]Out[31]: 0 NaN1 NaN2 NaN3 a4 a5 NaN6 A7 o8 adtype: object4.#提取字符串#如果提取的规则结果有多组,则会返回数据框,不匹配的返回NaNIn [32]: pd.Series(['a1', 'b2', 'c3']).str.extract('([ab])(\d)', expand=False)Out[32]: 0 10 a 11 b 22 NaN NaN#注意正则表达式中的任何捕获组名称将用于列名,否则捕获的组名将被当作列名In [33]: pd.Series(['a1', 'b2', 'c3']).str.extract('(?P[ab])(?P\d)', expand=False)Out[33]: letter digit0 a 11 b 22 NaN NaN#参数expand=True在一组返回值的情况下,返回数据框In [35]: pd.Series(['a1', 'b2', 'c3']).str.extract('[ab](\d)', expand=True)Out[35]: 00 11 22 NaN#参数expand=False在一组返回值的情况下,返回序列(Series)In [36]: pd.Series(['a1', 'b2', 'c3']).str.extract('[ab](\d)', expand=False)Out[36]: 0 11 22 NaNdtype: object#参数expand=True作用在索引上时,一组数据返回数据框In [37]: s = pd.Series(["a1", "b2", "c3"], ["A11", "B22", "C33"])In [38]: sOut[38]: A11 a1B22 b2C33 c3dtype: objectIn [39]: s.index.str.extract("(?P[a-zA-Z])", expand=True)Out[39]: letter0 A1 B2 C#参数expand=False作用在索引上时,一组数据返回索引In [40]: s.index.str.extract("(?P[a-zA-Z])", expand=False)Out[40]: Index([u'A', u'B', u'C'], dtype='object', name=u'letter')#下图表示了在expand=False时,各种情况下index,Series返回值的情况 1 group >1 groupIndex Index ValueErrorSeries Series DataFrame5.#提取所有匹配的字符串#extract只返回第一个匹配到的字符In [42]: s = pd.Series(["a1a2", "b1", "c1"], index=["A", "B", "C"])In [43]: sOut[43]: A a1a2B b1C c1dtype: objectIn [44]: two_groups = '(?P[a-z])(?P[0-9])'In [45]: s.str.extract(two_groups, expand=True)Out[45]: letter digitA a 1B b 1C c 1#extractall将匹配所有返回的字符In [46]: s.str.extractall(two_groups)Out[46]: letter digit match A 0 a 1 1 a 2B 0 b 1C 0 c 16.#测试是否包含某规则In [56]: pattern = r'[a-z][0-9]'In [57]: pd.Series(['1', '2', '3a', '3b', '03c']).str.contains(pattern)Out[57]: 0 False1 False2 False3 False4 Falsedtype: bool7. #match, contains, startswith, and endswith可以设置缺失值是True还是falseIn [59]: s4 = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca', np.nan, 'CABA', 'dog', 'cat'])In [60]: s4.str.contains('A', na=False)Out[60]: 0 True1 False2 False3 True4 False5 False6 True7 False8 Falsedtype: bool8.#提取伪变量In [61]: s = pd.Series(['a', 'a|b', np.nan, 'a|c'])In [62]: s.str.get_dummies(sep='|')Out[62]: a b c0 1 0 01 1 1 02 0 0 03 1 0 1#获取复杂索引In [63]: idx = pd.Index(['a', 'a|b', np.nan, 'a|c'])In [64]: idx.str.get_dummies(sep='|')Out[64]: MultiIndex(levels=[[0, 1], [0, 1], [0, 1]], labels=[[1, 1, 0, 1], [0, 1, 0, 0], [0, 0, 0, 1]], names=[u'a', u'b', u'c']) 到此,相信大家对"Pandas基本文本数据的处理方法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
方法
数据
字符
参数
索引
字符串
空格
处理
可以通过
情况
文本
小写
作用
元素
内容
正则
表达式
规则
学习
复杂
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
使用网络技术访问网页
适合做服务器的迷你主机
传统产业数字化转型网络安全
网络安全 赛门铁克
现在的网络安全事件
语音会议软件开发的服务机构
软件开发部经理 招聘
广东物联网软件开发
高质量的网络安全公司
网络安全要实现的目标有哪些
成都正己厚网络技术有限公司
数据库中登陆名验证
服务器跑油猴脚本
软件开发支出包括哪些
网络安全管理研究的论文
软件开发技术选型ppt
数据库持续运维保障
腾讯云轻量应用服务器ip被封
独角兽互联网科技有限公司
陕西手机软件开发平台
关于网络安全的技术报告
软件开发经理来年规划
管理远程的服务器软件
软件开发流程 报告
鲲鹏服务器部署gpmall
中学生网络安全教育简报
企业免费服务器
软件工程自学网络安全
魔兽2.43数据库
腾讯云轻量应用服务器ip被封