Pandas基本文本数据的处理方法
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"Pandas基本文本数据的处理方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Pandas基本文本数据的处理方法"吧!1.# 系列和索
千家信息网最后更新 2026年11月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素材
佛山市拉法互联网科技有限公司
互联网科技大赛获奖感言
互联网科技如何创业
易企秀互联网科技是做什么的
互联网科技公司
互联网 卓越科技
互联网前沿科技
银川新华互联网科技学校地址
温州喔噻互联网科技有限公司
互联网科技实习生岗位
互联网领先科技活动
互联网科技大佬云集
上海互联网科技园景观
株洲百竞科技的互联网营销顾问