按最后一个分隔符分割列 - python

问题描述 投票:0回答:1

我正在尝试按最后一个

' - '
拆分一列,并且所有字符串字母均为大写。下面,我有一个 df ,其中
Value
包含连接项目的各种组合。我想将列分成两个单独的列。简单来说,就是最后一个
' - '
之前的所有内容。我有
Last
正确,但不正确
First

df = pd.DataFrame({
    'Value': [
        'Juan-Diva - HOLLS',
        'Carlos - George - ESTE BAN',
        'Javier Plain - Hotham Ham - ALPINE',
        'Yul - KONJ KOL MON'
    ],
})

df[['First', 'l']] = df['Value'].str.split(' - ', n=1, expand=True)

df['Last'] = df['Value'].str.split('- ').str[-1]

预期输出:

                       First          Last
0                  Juan-Diva         HOLLS
1            Carlos - George      ESTE BAN
2  Javier Plain - Hotham Ham        ALPINE
3                        Yul  KONJ KOL MON
python pandas split
1个回答
0
投票

IIUC,你应该使用

.str.rsplit

df[["First", "Last"]] = df["Value"].str.rsplit(" - ", n=1, expand=True)
print(df)

打印:

                                Value                      First          Last
0                   Juan-Diva - HOLLS                  Juan-Diva         HOLLS
1          Carlos - George - ESTE BAN            Carlos - George      ESTE BAN
2  Javier Plain - Hotham Ham - ALPINE  Javier Plain - Hotham Ham        ALPINE
3                  Yul - KONJ KOL MON                        Yul  KONJ KOL MON
© www.soinside.com 2019 - 2024. All rights reserved.