点击查看【bilibili】

str函数

要求:去除表中的[]和单引号

  1. df.positionLables
  2. 0 ['分析师', '数据分析', '数据']
  3. 1 ['数据']
  4. 2 ['数据分析', '数据', 'BI']
  5. 3 ['平台', '技术支持', '数据']
  6. 4 ['数据分析', '数据']
  7. ...
  8. 6869 ['数据分析', '数据']
  9. 6870 ['大数据', '数据']
  10. 6871 ['数据分析', '数据']
  11. 6872 ['分析师', '需求分析']
  12. 6873 ['分析师', '金融']
  13. 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