千家信息网

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数据库的时间怎么修改 河北工业大学服务器地址云空间 资兴县电子软件开发培训班 昌平区网络营销网络技术一体化
0