文本处理.–使用字符串处理函数
先将pandas的series对象转成strings对象,再使用字符串相关函数。
s = pd.Series(['A','b','C','bbhello','123',np.nan,'hj'])
0 A
1 b
2 C
3 bbhello
4 123
5 NaN
6 hj
dtype: object
print(type(s),type(s.str))
<class 'pandas.core.series.Series'> <class 'pandas.core.strings.StringMethods'>
将series对象转成strings对象后,就可以使用字符串相关的方法了。
- 计算某个字符出现的次数
.count()
s.str.count('b')
0 0.0
1 1.0
2 0.0
3 2.0
4 0.0
5 NaN
6 0.0
dtype: float64
其余方法见:字符串相关方法
- 列名变为大写
df.columns = df.columns.str.upper()
.split()
中的expand
参数
s = pd.Series(['a,b,c','1,2,3',['a,,,c'],np.nan])
print(s)
print(s.str.split(',', expand=True))
print(s.str.split(',', expand=True, n = 1))
s
0 [a, b, c]
1 [1, 2, 3]
2 NaN
3 NaN
dtype: object
s.str.split(',', expand=True)
0 1 2
0 a b c
1 1 2 3
2 NaN NaN NaN
3 NaN NaN NaN
s.str.split(',', expand=True, n = 1),切分一次,且扩展
0 1
0 a b,c
1 1 2,3
2 NaN NaN
3 NaN NaN
切片
s.str[0] # 获取s的每条数据的第一个元素,遇NaN跳过
0 A
1 b
2 C
3 b
4 1
5 NaN
6 h
dtype: object