python pandas-->str.strip()函数
2020-11-25 本文已影响0人
默直
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()。第一个是只删头,第二个是只删尾巴。用法类似