有些时候我们的数据是字符串形式的,pandas也能方便的处理。
一、字符串处理。
In [25]: s = pd.Series(list('ABCDEF'))
In [26]: s
Out[26]:
0 A
1 B
2 C
3 D
4 E
5 F
dtype: object
(1)字符大小写转换:s.str.lower()和s.str.upper()
In [27]: s.str.lower()
Out[27]:
0 a
1 b
2 c
3 d
4 e
5 f
dtype: object
In [28]: s.str.upper()
Out[28]:
0 A
1 B
2 C
3 D
4 E
5 F
dtype: object
(2)获取字符串的长度:s.str.len()
In [30]: s.str.len()
Out[30]:
0 1
1 1
2 1
3 1
4 1
5 1
dtype: int64
(
3)切割字符串:
In [31]: s1 = pd.Series(['A_B_C','D E F',np.nan,'I_J K'])
In [32]: s1
Out[32]:
0 A_B_C
1 D E F
2 NaN
3 I_J K
dtype: object
split()将字符串转换为list
In [42]: s1.str.split('_')
Out[42]:
0 [A, B, C]
1 [D E F]
2 NaN
3 [I, J K]
dtype: object
str.get(i)取列表里第i个元素,.str[i]也是一样的结果,不存在用NaN表示。
In [43]: s1.str.split('_').str.get(1)
Out[43]:
0 B
1 NaN
2 NaN
3 J K
dtype: object
(4)替换字符串replace:replace的第一个参数是正则表达式,第二个参数是要替换成的字符串。
将空格替换下划线
In [53]: s1.str.replace(' ','_')
Out[53]:
0 A_B_C
1 D_E_F
2 NaN
3 I_J_K
dtype: object
(4)字符串提取:extract,它的第一个参数是正则表达式,无法匹配的内容用NaN表示
用extract提取数字