Python根据最后一个元素和剩余元素将列拆分为两列

2024-10-01 17:27:17 发布

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

我想将名为period的列拆分为两个新列。在一个新列中,我想返回period中的最后一个元素,第二个新列是所有剩余的元素

我的数据框用虚拟数据显示:

import pandas as pd 

d = {'period': ['May \'20 Base',
                'June \'20 Peaks',
                'Friday Base',
                '24/07/2020 XY1+XY2',
                '01-02 August \'20 Peaks',
                'June \'20 XY1+XY2+XY3']
    }

df = pd.DataFrame(data=d)

所需输出:

                  period              colA         colB
0            May '20 Base           May '20         Base
1          June '20 Peaks          June '20        Peaks
2             Friday Base            Friday         Base
3      24/07/2020 XY1+XY2        24/07/2020      XY1+XY2
4  01-02 August '20 Peaks  01-02 August '20        Peaks
5    June '20 XY1+XY2+XY3          June '20  XY1+XY2+XY3

我的尝试:

我可以返回period中的最后一个元素,但不能返回1-3个元素之间的所有剩余元素

df['colB'] = df.period.str.split().str[-1]

Tags: 数据元素dfbasemayperiodpdpeaks
2条回答

您可以使用以下模式:

pat = '^(?P<colA>.*) (?P<colB>\S+)$'
df.join(df.period.str.extract(pat))

输出:

                   period              colA         colB
0            May '20 Base           May '20         Base
1          June '20 Peaks          June '20        Peaks
2             Friday Base            Friday         Base
3      24/07/2020 XY1+XY2        24/07/2020      XY1+XY2
4  01-02 August '20 Peaks  01-02 August '20        Peaks
5    June '20 XY1+XY2+XY3          June '20  XY1+XY2+XY3

你可以用

(.+)\s+(\S+)$

a demo on regex101.com

相关问题 更多 >

    热门问题