python pandas-->str.strip()函数

Series.str.strip(self, to_strip=None)
删除每个字符串左侧、右侧中空格(包括换行符)或一组指定的字符。

制表符 描述
\t 制表符
\n 换行符
\n\t 换行且行首空四格
\s 空格
\r 回车符
\t 多见于正则表达式,\s匹配字符串中的\和s两个字符,因为\在正则中有特殊意义,需要转义,所以前面加上了一个转义符\
  • 参数
    to_strip:str 或 None, 默认为 None
    指定要删除的字符集。这组字符的所有组合都将被删除。如果为None,则将删除空格。
  • 返回值:Series
import pandas as pd
import numpy as np
data = pd.DataFrame([
                    [1,'1.张三.12523    565421!\n'],
                    [2,'2.李四.12345 125623@\r'], 
                    [3,'   3.王五.152563 5632.    \t'],
                    [4,'4.赵六.142 6236532?\n\t'],
                    [5,'5.田七.22     3    '],
                    [6,np.nan],
                    [7,'09235621   ']
                  ],
                  columns =['ID','电话']
                 )
data
image.png

1.删除左右空格以及\n\r\t

data['电话1']=data['电话'].str.strip()
image.png

注意:有没有发现,中间的空格、制表符是删除不了的,只能删除左右两边的!!!

2.删除“电话”列 数字+.

data['电话1']=data['电话'].str.lstrip(' 1234567890.')
data
image.png

3.删除“电话”列!@.?等

data['电话1']=data['电话'].str.strip().str.strip('!@.?')
data
image.png

注:中间空格、\r\t\n是无法删除的!!!
字符串str还有另外两种类似的方法lstrip()和rstrip()。第一个是只删头,第二个是只删尾巴。用法类似

你可能感兴趣的:(python pandas-->str.strip()函数)