pandas 合并列拆分列
import pandas as pd
import re
df = (
pd.read_excel("/mnt/c/users/xuefe/Downloads/就诊统计.xlsx", sheet_name=3)
.drop(['Unnamed: 0','Unnamed: 4'],axis=1)
)
df[['A', 'B','C']] = df['分类诊断名称'].str.split(pat='[;| |/|;|,|,|!|、|-|\.|?]',
n=2, expand=True)
# n=1 表示分割成2列,n=2 表示分割成3列。
# 当expand=True时,str.split()方法返回DataFrame,并将结果自动拆分为若干列作为新列。
# 当expand=False时,str.split()方法返回一个Series对象,每个元素是一个列表,其中的内容取决于拆分的结果。
df[['A', 'B','C']] = df['分类诊断名称'].str.split(pat='[;| |/|;|,|,|!|、|-|\.|?]',
n=2, expand=True)
df = (
pd.read_excel("/mnt/c/users/xuefe/Downloads/就诊统计.xlsx", sheet_name=3)
.drop(['Unnamed: 0','Unnamed: 4'],axis=1)
.assign(A=lambda x:x['分类诊断名称'].str.split(pat='[;| |/|;|,|,|!|、|-|.|?]', n=2, expand=True)[0],
B=lambda x:x['分类诊断名称'].str.split(pat='[;| |/|;|,|,|!|、|-|.|?]', n=2, expand=True)[1],
C=lambda x:x['分类诊断名称'].str.split(pat='[;| |/|;|,|,|!|、|-|.|?]', n=2, expand=True)[2])
)
df=(
df
.assign(z=df.A.str.cat(df.B,sep=','))
)
评论
发表评论