基本函数
s = pd.Series(['A',' B'])
s.str.lower()
s.str.upper()
s.str.len()
s.str.strip()
s.str.lstrip()
s.str.rstrip()
split
s = pd.Series(['a_b_c', 'c_d_e', np.nan, 'f_g_h'])
s.str[1] # 取所有列下标为1的字符
s.str.split('_').str[1] # 将所有字符串拆分,然后去下标为1的字符
s.str.split('_', expand=True) # 将拆分后的字符串,变成数据框
repalce
s = pd.Series(['a_b_c', 'c_d_e', np.nan, 'f_g_h'])
s.str.replace('_._','_')
Concatenation
1)聚合拼贴字符串
s = pd.Series(['a_b_c', 'c_d_e', np.nan, 'f_g_h'])
s.str.cat(sep=',')
2)和其他序列进行拼贴
s = pd.Series(['a_b_c', 'c_d_e', np.nan, 'f_g_h'])
u = pd.Series(['b', 'd', 'a', 'c'], index=[1, 3, 0, 2])
s.str.cat(u, join='left')
Extracting
extract
只返回分组内容
>>> pd.Series(['a1', 'b2', 'c3']).str.extract(r'([ab])(\d)')
0 1
0 a 1
1 b 2
2 NaN NaN
>>> pd.Series(['a1', 'b2', 'c3']).str.extract(r'[ab](\d)')
0
0 1
1 2
2 NaN
contains
用来判断是否包含字符
pd.Series(['1', '2', '3a', '3b', '03c', '4dx']).str.contains(r'[0-9][a-z]')