Pandas基本文本数据的处理方法
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇内容主要讲解"Pandas基本文本数据的处理方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Pandas基本文本数据的处理方法"吧!1.# 系列和索
千家信息网最后更新 2024年09月22日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安全错误
数据库的锁怎样保障安全
30米箱梁张拉设计数据库
医院网络安全平台搭建
人体网络安全管理系统
银商贷紫山互联网科技有限公司
网络安全与人权
软件开发案例书
虹口区网络软件开发质量保障
检查数据库是否启用ssl加密
魔兽怀旧服一直与服务器断开连接
数据库显示自动恢复的解决办法
数据库数据加密技术的是
杭州广桥集客网络技术有限公司
sql数据库越来越慢
村居开展网络安全宣传活动
山西正规软件开发服务检测中心
服务器怎么查硬盘序列号
如何查看主板支持服务器
php网站数据库如何修改
智慧物联网络安全高峰论坛
网络技术绩效考核表
戴尔服务器配件
数据库维护计划怎么自动删除
华为软件开发流程图
网络安全执法标准
一点像素服务器地址
数据库统一接口组件
db2数据库的时间怎么修改
河北工业大学服务器地址云空间
资兴县电子软件开发培训班
昌平区网络营销网络技术一体化