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'([^;]*)$')
我有一个包含“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'([^;]*)$')