反向pandas字符串/反向提取pandas DF

gzszwxb4  于 2023-05-27  发布在  其他
关注(0)|答案(2)|浏览(123)

日安
我得到的文件路径列如下:

pd.DataFrame({'path':[
'C:/some_1_path/file_1.zip',
'C:/some_1_path/file_2.zip']

我想从这里提取模式_\d,如下所示:

'C:/some_1_path/file_1.zip'| '_1' 
'C:/some_1_path/file_2.zip'| '_2'

因为_1恰好在path中,所以str.extract()会选择该路径。extractall将工作,但需要额外的步骤。
.str.extract(pattern)如何以相反的顺序提取(pattern)?我可以把绳子倒过来,但要多走几步。

e5nqia27

e5nqia271#

您可以使用负先行来确保最后一个下划线:

df["val"] = df["path"].str.extract(r'(_\d+)(?!.*_\d+)')
yx2lnoni

yx2lnoni2#

你可以在你的模式中使用.*,这样你只会得到最后一个匹配:

>>> df['path'].str.extract(r".*(_\d+)")
    0
0  _1
1  _2

相关问题