Python学习笔记:pandas.Series.str.split分列
一、字符串分割split
split()
方法通过指定分隔符对字符串进行切分,返回分割后的字符串列表。
使用语法为:
str.split(str=" ", maxsplit=string.count(str))
参数:
-- str 分隔符 默认为所有的空字符 包括空格、换行符、制表符等
-- maxsplit 分割次数 默认-1 即分割所有
实操:
str = "abc ggg rrr"
str.split() # ['abc', 'ggg', 'rrr']
str.split(" ",maxsplit=1) # ['abc', 'ggg rrr']
二、pandas.str.split分列
1.str.split()
使用语法为:
Series.str.split(pat=None, n=-1, expand=False)
-- pat 分隔符
-- n 指定分割次数 -1代表全部
-- expand=True 分列 返回多列
指定 expand=True
进行分列,返回 DataFrame
。
import pandas as pd
df = pd.DataFrame({'id':[1, 2],
'code':['A,B,C', 'B,C']})
# 按逗号分割
df.code.str.split(',')
'''
0 [A, B, C]
1 [B, C]
Name: code, dtype: object
'''
# 自动分列
df.code.str.split(',', expand=True)
'''
0 1 2
0 A B C
1 B C None
'''
# 指定参数n 分割次数
df.code.str.split(',', expand=True, n=1)
'''
0 1
0 A B,C
1 B C
'''
支持正则表达式分割符
import pandas as pd
s = pd.Series(["1+1=2"])
s.str.split(r"\+|=", expand=True)
'''
0 1 2
0 1 1 2
'''
2.str.rsplit
从右往左寻找分列依据,使用语法类似 split
。
df['code'].str.rsplit(',', expand=True, n=1)
'''
0 1
0 A,B C
1 B C
'''
参考链接:Python split()方法