pandas文本数据处理的五种操作

拆分、拼接、替换、提取和匹配是pandas关于文本数据的五种常用操作。五种操作相辅相成,共同撑起了pandas文本数据处理能力。

一、拆分str.split

str.split方法可以指定某一种特定的符号作为分割符,比如“_”,默认一般为空格。需要注意的是split后的类型是object,因为现在Series中的元素已经不是string,而包含了list,且string类型只能含有字符串。对于str方法可以进行元素的选择,如果该单元格元素是列表,那么str[i]表示取出第i个元素,如果是单个元素,则先把元素转为列表在取出。比如,对列表s = pd.Series(['a_b_c', 'c_d_e', np.nan, 'f_g_h'], dtype="string")使用s.str.split('_').str[1]输出结果为:

0       b

1       d

2    <NA>

3       g

dtype: object

此外,该方法还有两个参数:expand和n。其中,expand参数控制了是否将列拆开,n参数代表最多分割多少次。

最后,关于分割的还有一个rsplit方法,该方法表示从右边分割,而split()表示从左边开始分割。两者分割后的结构均为一个列表。

二、拼接str.cat

cat方法对于不同对象的作用结果并不相同,其中的对象包括:单列、双列、多列。对于单个Series而言,就是指所有的元素进行字符合并为一个字符串。对于两个Series合并而言,是对应索引的元素进行合并。多列拼接可以分为表的拼接和多Series拼接。需要注意的是,对于多个series拼接,是按照索引的拼接。比如:

s1=pd.Series(list(‘abc’),index=[0,1,2])

s2=pd.Series(list(‘bcd’),index=[1,2,3])

调用s1.str.cat(s2)输出结果为:

  1. a
  2. bb
  3. cc

三、替换 str.replace

首先,要区别str.replace和replace两种方法。str.replace针对的是object类型或string类型,默认是以正则表达式为操作,目前暂时不支持DataFrame上使用。replace针对的是任意类型的序列或数据框,如果要以正则表达式替换,需要设置regex=True,该方法通过字典可支持多列替换。

四、提取str.extract

该方法有一个默认参数expand,一般默认为true。对于一个子组的Series,如果expand设置为False,则返回Series,若大于一个子组,则expand参数无效,全部返回DataFrame。对于一个子组的Index,如果expand设置为False,则返回提取后的Index,若大于一个子组且expand为False,报错。

此外,可用于提取的还有extractall方法。该方法与extract只匹配第一个符合条件的表达式不同,extractall会找出所有符合条件的字符串,并建立多级索引(即使只找到一个)。比如,对于s = pd.Series(["a1a2", "b1", "c1"], index=["A", "B", "C"],dtype="string")用该方法,two_groups = '(?P<letter>[a-z])(?P<digit>[0-9])',输出结果为:

           letter   digit

match      

A  0      a        1

1     a        2

B    0       b      1

C    0       c       1

五、匹配str.contains和str.match

str.contains作用为检测是否包含某种正则模式,可选参数为na。str.match与其区别在于,match依赖于python的re.match,检测内容为是否从头开始包含该正则模式。

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值