您的位置:

Python Pandas字符串分割技巧,提高数据处理效率

一、str对象介绍和基本操作

在Pandas中,字符串数据可以用str对象来进行操作。

str对象提供了许多字符串方法,下面是一些常用操作:

import pandas as pd
import numpy as np
s = pd.Series(['A','B','C','AA','BB','CC'])
s.str.lower() #将字符串转为小写
s.str.upper() #将字符串转为大写
s.str.len() #返回字符串长度
s.str.strip() #去掉两边空格
s.str.split('A') #用'A'进行字符串分割

上面的代码会分别得到以下结果:

0     a
1     b
2     c
3    aa
4    bb
5    cc
dtype: object

0     A
1     B
2     C
3    AA
4    BB
5    CC
dtype: object

0    1
1    1
2    1
3    2
4    2
5    2
dtype: int64

0     A
1     B
2     C
3    AA
4    BB
5    CC
dtype: object

0            [, ]
1            [, ]
2            [, ]
3       [AA, , ]
4       [BB, , ]
5       [CC, , ]
dtype: object

二、字符串提取

在实际的数据处理中,常常需要从一个字符串中提取出一部分内容。

1. 使用str.slice提取子串

如果想要提取字符串中的某一个子串(如提取前几个字符),可以使用str.slice方法。

import pandas as pd
import numpy as np
s = pd.Series(['abcd','efgh','ijkl'])
s.str.slice(0,2) #提取每个字符串的前2个字符
s.str.slice(1,3) #提取每个字符串的第2~3个字符

上面的代码会得到以下结果:

0    ab
1    ef
2    ij
dtype: object

0    bc
1    fg
2    jk
dtype: object

2. 使用str.extract提取规则匹配的子串

如果需要提取一个字符串中符合某种规则的子串,可以使用str.extract方法,并给出一个正则表达式。

import pandas as pd
import numpy as np
s = pd.Series(['A1','B2','C3'])
s.str.extract('([AB])(\d)') #提取以A或B开头,后跟一个数字的子串

上面的代码会得到以下结果:

   0  1
0  A  1
1  B  2

三、字符串拼接

在实际开发过程中,经常需要将多个字符串进行合并。

1. 使用"+"号进行拼接

使用"+"号把多个字符串拼接起来是最简便的方法,可以用以下代码实现:

import pandas as pd
import numpy as np
s1 = pd.Series(['A','B','C'])
s2 = pd.Series(['D','E','F'])
s3 = s1 + s2
print(s3)

上面的代码会得到以下结果:

0    AD
1    BE
2    CF
dtype: object

2. 使用str.cat方法进行拼接

除了用"+"号拼接以外,还可以使用str.cat方法进行拼接,可以使用以下代码实现:

import pandas as pd
import numpy as np
s1 = pd.Series(['A','B','C'])
s2 = pd.Series(['D','E','F'])
s3 = s1.str.cat(s2)
print(s3)

上面的代码会得到以下结果:

0    AD
1    BE
2    CF
dtype: object

四、字符串分割

在实际开发中,经常需要对包含多个字段的字符串进行拆分。

1. 使用str.split方法进行分割

使用str.split方法进行分割是最直接的方法,可以使用以下代码实现:

import pandas as pd
import numpy as np
s = pd.Series(['A,B,C','D,E,F','G,H,I'])
s.str.split(',', expand=True) #以逗号作为分隔符,将每个字符串拆分成3个部分

上面的代码会得到以下结果:

   0  1  2
0  A  B  C
1  D  E  F
2  G  H  I

2. 使用str.extract方法提取分隔符中间的内容

如果需要提取分隔符中间的内容,可以使用str.extract方法,可以使用以下代码实现:

import pandas as pd
import numpy as np
s = pd.Series(['A_B_C','D_E_F','G_H_I'])
s.str.extract('_(.*)_') #提取每个字符串中以_开头和结尾的内容

上面的代码会得到以下结果:

    0
0  B
1  E
2  H

总结:

通过本文的介绍,我们了解了Pandas中字符串“提取、拼接和分隔”的技巧,提高了数据处理效率。在实际数据处理过程中,我们可以根据具体情况选择适合的方法,以提高代码的可靠性和可维护性。