Pandas数据分析 - 分列 - split() 用法

函数用法: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

你可能感兴趣的:(python,数据分析,python,pandas)