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=','))
)

评论

此博客中的热门博文

V2ray websocket(ws)+tls+nginx分流

Rstudio 使用代理