str函数
要求:去除表中的[]和单引号
df.positionLables
0 ['分析师', '数据分析', '数据']
1 ['数据']
2 ['数据分析', '数据', 'BI']
3 ['平台', '技术支持', '数据']
4 ['数据分析', '数据']
...
6869 ['数据分析', '数据']
6870 ['大数据', '数据']
6871 ['数据分析', '数据']
6872 ['分析师', '需求分析']
6873 ['分析师', '金融']
Name: positionLables, Length: 6874, dtype: object
典型错误:直接replace
#去掉数值中的[],若直接对series使用replace是无效的,因为此时只能替换单元格内整体值,如['数据']
df.positionLables.replace('[','')
0 ['分析师', '数据分析', '数据']
1 ['数据']
2 ['数据分析', '数据', 'BI']
3 ['平台', '技术支持', '数据']
4 ['数据分析', '数据']
...
6869 ['数据分析', '数据']
6870 ['大数据', '数据']
6871 ['数据分析', '数据']
6872 ['分析师', '需求分析']
6873 ['分析师', '金融']
Name: positionLables, Length: 6874, dtype: object
方法1:先除[,再除],最后除’
- 第一步:是用str方法,编辑的是单元格内的字段,使用两次str.replace去掉[]
```python
方法1:第一步:是用str方法,编辑的是单元格内的字段,使用两次str.replace去掉[]
ser1=df.positionLables.str.replace(‘[‘,’’) ser1=ser1.str.replace(‘]’,’’) ser1
0 ‘分析师’, ‘数据分析’, ‘数据’
1 ‘数据’
2 ‘数据分析’, ‘数据’, ‘BI’
3 ‘平台’, ‘技术支持’, ‘数据’
4 ‘数据分析’, ‘数据’
…
6869 ‘数据分析’, ‘数据’
6870 ‘大数据’, ‘数据’
6871 ‘数据分析’, ‘数据’
6872 ‘分析师’, ‘需求分析’
6873 ‘分析师’, ‘金融’
Name: positionLables, Length: 6874, dtype: object
- 第二步:去掉单引号
```python
#第二步:去掉单引号,使用str.replace()
ser1=ser1.str.replace("'","")
ser1
0 分析师, 数据分析, 数据
1 数据
2 数据分析, 数据, BI
3 平台, 技术支持, 数据
4 数据分析, 数据
...
6869 数据分析, 数据
6870 大数据, 数据
6871 数据分析, 数据
6872 分析师, 需求分析
6873 分析师, 金融
Name: positionLables, Length: 6874, dtype: object
- 第三步:将处理后的新值赋值给原series
df.positionLables=ser1
方法2:先srt[]切片,再str.replace()
典型错误是直接ser2=df.positionLables.str[1:-1].str.replace("'","") ser2 0 分析师, 数据分析, 数据 1 数据 2 数据分析, 数据, BI 3 平台, 技术支持, 数据 4 数据分析, 数据 ... 6869 数据分析, 数据 6870 大数据, 数据 6871 数据分析, 数据 6872 分析师, 需求分析 6873 分析师, 金融 Name: positionLables, Length: 6874, dtype: object
str[1:-1].replace("'","")
,错误在于使用str[1:-1]
切片后返回的结果依旧是series,直接使用replace(),不能编辑单元格内的字符。
方法2也可拆开两步来看:
- 第一步,使用str切片,编辑的是单元格内的字符串,可直接去除收尾的[]。
【注意】此时切片返回的依旧是series
ser2=df.positionLables.str[1:-1]
ser2
0 '分析师', '数据分析', '数据'
1 '数据'
2 '数据分析', '数据', 'BI'
3 '平台', '技术支持', '数据'
4 '数据分析', '数据'
...
6869 '数据分析', '数据'
6870 '大数据', '数据'
6871 '数据分析', '数据'
6872 '分析师', '需求分析'
6873 '分析师', '金融'
Name: positionLables, Length: 6874, dtype: object
- 第二步,去除单引号。在第一步的基础上继续使用一次str.replace
#第二步,去除单引号。在第一步的基础上继续使用一次str ser2=ser2.str.replace("'","") ser2 0 分析师, 数据分析, 数据 1 数据 2 数据分析, 数据, BI 3 平台, 技术支持, 数据 4 数据分析, 数据 ... 6869 数据分析, 数据 6870 大数据, 数据 6871 数据分析, 数据 6872 分析师, 需求分析 6873 分析师, 金融 Name: positionLables, Length: 6874, dtype: object