Python: 如何将带有分隔符的字符串的最后一个子串提取到另一列中?

Python: how to extract the LAST substring of a string with separator into another column?

我有一个包含“CCR”列的数据框,其值如下:“Aaaa;Bbbb;Cccc”或“Bbbb;;Cccc”或“Cccc;Bbbb;Aaaa”或只是“Bbbb” . 我想提取最后一个子字符串部分(在“;”之后)并将其放入另一列“LastCCR”。 如果只有一个值,因此没有 ';'那么该值在 LastCCR 列中保持不变。

我想使用 lambda 函数:我使用下面的代码行提取第一个值,但我不知道如何更改它以提取字符串的最后一个值。 有人可以帮忙吗?

df[1stCCR] = df['CCR'].apply(lambda x:x[0:x.index(';') if ';' in x else None])
df[1stCCR] = df['CCR'].apply(lambda x: x.split(";")[-1])

使用str.extract我们可以尝试:

df["LastCCR"] = df["CCR"].str.extract(r'([^;]*)$')