3-12 字符串操作

In [1]:
import pandas as pd
import numpy as np
s=pd.Series(['A','b','B','gaer','AGER',np.nan])
s
Out[1]:
0       A
1       b
2       B
3    gaer
4    AGER
5     NaN
dtype: object
 

1.大小写转换

In [2]:
s.str.lower()#大写转小写
Out[2]:
0       a
1       b
2       b
3    gaer
4    ager
5     NaN
dtype: object
In [3]:
s.str.upper()#小写转大写
Out[3]:
0       A
1       B
2       B
3    GAER
4    AGER
5     NaN
dtype: object
 

2.计算字符串的长度

In [4]:
s.str.len()
Out[4]:
0    1.0
1    1.0
2    1.0
3    4.0
4    4.0
5    NaN
dtype: float64
 

3.删除字符串里的空格

In [5]:
index=pd.Index(['  tang ','  yu ','  di '])
index
Out[5]:
Index(['  tang ', '  yu ', '  di '], dtype='object')
In [6]:
index.str.strip()#删除字符串里的空格
Out[6]:
Index(['tang', 'yu', 'di'], dtype='object')
In [7]:
index.str.lstrip()#删除左边空格
Out[7]:
Index(['tang ', 'yu ', 'di '], dtype='object')
In [8]:
index.str.rstrip()#删除右边空格
Out[8]:
Index(['  tang', '  yu', '  di'], dtype='object')
 

4.改变DataFrame名称

In [9]:
df=pd.DataFrame(np.random.randn(3,2),columns=['A a','B b'],index=range(3))
df
Out[9]:
 
 A aB b
0 -1.587250 -0.362449
1 0.179732 0.197893
2 -0.115557 0.378154
In [10]:
df.columns=df.columns.str.replace(' ','_')#空格替换成 "_"
df
Out[10]:
 
 A_aB_b
0 -1.587250 -0.362449
1 0.179732 0.197893
2 -0.115557 0.378154
 

5.用分隔符删除

In [11]:
s=pd.Series(['a_b_C','c_d_e','f_g_h'])
s
Out[11]:
0    a_b_C
1    c_d_e
2    f_g_h
dtype: object
In [12]:
s.str.split('_')#用分隔符删除,变成list结构
Out[12]:
0    [a, b, C]
1    [c, d, e]
2    [f, g, h]
dtype: object
 

6.切分数据

In [13]:
s.str.split('_',expand=True)#把数据全部分开
Out[13]:
 
 012
0 a b C
1 c d e
2 f g h
In [14]:
s.str.split('_',expand=True,n=1)#把数据切分一次
Out[14]:
 
 01
0 a b_C
1 c d_e
2 f g_h
In [15]:
s.str.split('_',expand=True,n=2)#把数据切分两次
Out[15]:
 
 012
0 a b C
1 c d e
2 f g h
In [16]:
s=pd.Series(['A','Aas','Asjfds','Ajdd','Adhee'])
s
Out[16]:
0         A
1       Aas
2    Asjfds
3      Ajdd
4     Adhee
dtype: object
In [17]:
s.str.contains('Aa')#判断Aa 是否存在
Out[17]:
0    False
1     True
2    False
3    False
4    False
dtype: bool
 

7.查询分隔符的位置

In [18]:
s=pd.Series(['a','a|b','a|c'])
s
Out[18]:
0      a
1    a|b
2    a|c
dtype: object
In [19]:
s.str.get_dummies(sep='|')#查询分隔符的位置
Out[19]:
 
 abc
0 1 0 0
1 1 1 0
2 1 0 1
原文地址:https://www.cnblogs.com/AI-robort/p/11678971.html