函数用法:split(sep,n,expand=false)
sep表示用于分割的字符;
n表格分割成多少列;
expand表示是否展开为数据款,True输出Series,False输出Dataframe。
import numpy as np
import pandas as pd
# 将每个数据按照_分割返回结果默认是一个由列表组成的Series
s = pd.Series(['a_b_c', 'd_e_f', np.nan, 'g_h_i'])
s.str.split('_')
0 [a, b, c]
1 [d, e, f]
2 NaN
3 [g, h, i]
dtype: object
# 也可以通过.str.get()或者[]获取拆分后的某个数值
s.str.split('_').str.get(1)
0 b
1 e
2 NaN
3 h
dtype: object
s.str.split('_').str[1]
0 b
1 e
2 NaN
3 h
dtype: object
# 当然,也支持将其扩展为DataFrame.
# 可以将expand参数设置为True
s.str.split('_', expand=True)
0 1 2
0 a b c
1 d e f
2 NaN NaN NaN
3 g h i
s.str.split('_', expand=False)
0 [a, b, c]
1 [d, e, f]
2 NaN
3 [g, h, i]
dtype: object
# 如上所示,如果直接分割,那么安装'_'分割,
# 每个字符便会被分割2次,该函数还可以通过
# 指定参数n的值来限定分割次数
s.str.split('_', expand=True, n=1)
0 1
0 a b_c
1 d e_f
2 NaN NaN
3 g h_i
# 如果使用了参数n ,可能有时会有需求,如果
# 想得到a_b, c组合而不是a, b_c组合
# pandas为此专门提供了另一个方法,rsplit(reverse split)
# 的意思,即反方向分割的意思
s.str.rsplit('_', expand=True, n=1)
0 1
0 a_b c
1 d_e f
2 NaN NaN
3 g_h i