如何基于多个分隔符pandas进行拆分

2024-10-01 11:32:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含

Phone number
12399422/930201021
5451354;546325642
789888744,656313214
123456654

我想把它分成两列

^{pr2}$

我试过用apply

    df['TELEPHONE1'] = df['TELEPHONE'].str.split(',').str.get(0)
    df['TELEPHONE2'] = df['TELEPHONE'].str.split(',').str.get(1)
    df['TELEPHONE1'] = df['TELEPHONE'].str.split(';').str.get(0)
    df['TELEPHONE2'] = df['TELEPHONE'].str.split(';').str.get(1)
    df['TELEPHONE1'] = df['TELEPHONE'].str.split('/').str.get(0)
    df['TELEPHONE2'] = df['TELEPHONE'].str.split('/').str.get(1)

但它只能分开“/”谢谢你的帮助


Tags: numberdfgetphonetelephonesplitapplystr
2条回答

使用str.split

df.Phonenumber.str.split('/|;|,',expand=True).add_prefix('Number_')
    Number_0   Number_1
0   12399422  930201021
1    5451354  546325642
2  789888744  656313214
3  123456654       None

仅在\D(非数字)上拆分:

(df['Phone number'].str.split(r'\D', expand=True)
    .rename(columns=lambda x: f'num{x+1}'))

        num1       num2
0   12399422  930201021
1    5451354  546325642
2  789888744  656313214
3  123456654       None

…假设电话号码只包含数字。在


或者,使用extractall并且只匹配数字:

^{pr2}$

相关问题 更多 >