数据框字符串列中的字符匹配和替换

时间:2021-07-29 09:05:02

标签: python pandas

我在 Pandas 数据框中有一个字符串列,有时后跟“>>@>”。我想在整个列中删除它,只有当这个字符串出现在末尾时。 示例:

<头>
原栏目 预期列
嗨乔>>@> 嗨乔
嗨马克 嗨马克
>>@>嗨安娜 >>@>嗨安娜
>>@>嗨,Tid >>@> >>@>嗨Tid

有没有办法一次性删除整个列的每个单元格末尾的特定字符串?

1 个答案:

答案 0 :(得分:1)

$ 用于指定的字符串结尾,将 \s+ 用于 >>@> 之前的匹配空间:

df['Expected column'] = df['Original column'].replace('\s+>>@>$', '', regex=True)
print (df)
   Original column Expected column
0      Hi Joe >>@>          Hi Joe
1          Hi Mark         Hi Mark
2      >>@>Hi Anna     >>@>Hi Anna
3  >>@>Hi Tid >>@>      >>@>Hi Tid

似乎也有效:

df['Expected column'] = df['Original column'].str.rstrip('>@')

但它删除了所有最后的 >@ 值,因此通常失败。

这意味着如果字符串以 aaa >@@@>>@>>@> 结尾,所有值都被删除 - 输出为 aaa