我在 Pandas 数据框中有一个字符串列,有时后跟“>>@>”。我想在整个列中删除它,只有当这个字符串出现在末尾时。 示例:
原栏目 | 预期列 |
---|---|
嗨乔>>@> | 嗨乔 |
嗨马克 | 嗨马克 |
>>@>嗨安娜 | >>@>嗨安娜 |
>>@>嗨,Tid >>@> | >>@>嗨Tid |
有没有办法一次性删除整个列的每个单元格末尾的特定字符串?
答案 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