Python/Pandas 从结尾删除特定字符串

标签 python pandas

我正在尝试从 pandas 数据框中的列中删除结尾的“OF”。我尝试了 'rstrip'、'split',但它也删除了 'O' 和 'F',我只需要删除 'OF'。怎么做?不确定为什么 rstrip 在我明确传递了“OF”时删除了“O”和“F”。抱歉,如果之前有人问过这个问题,我只是找不到。谢谢。

示例数据:

l1 = [1,2,3,4]
l2 = ['UNIVERSITY OF CONN. OF','ONTARIO','UNIV. OF TORONTO','ALASKA DEPT.OF']
df = pd.DataFrame({'some_id':l1,'org':l2})
df

some_id org
1       UNIVERSITY OF CONN. OF
2       ONTARIO
3       UNIV. OF TORONTO
4       ALASKA DEPT.OF

尝试过:

df.org.str.rstrip('OF')
# df.org.str.split('OF')[0] # Not what I am looking for

结果:

0    UNIVERSITY OF CONN. # works
1                  ONTARI # 'O' was removed
2         UNIV. OF TORONT # 'O' was removed
3            ALASKA DEPT. # works

需要的最终输出:

0    UNIVERSITY OF CONN. 
1                  ONTARIO
2         UNIV. OF TORONTO
3            ALASKA DEPT.

最佳答案

你可以试试这个正则表达式:

df.org = df.org.str.replace('(OF)$','')

其中 $ 表示字符串的结尾。或者

df.org.str.rstrip('(OF)')

似乎按预期工作。

输出:

0    UNIVERSITY OF CONN. 
1                 ONTARIO
2        UNIV. OF TORONTO
3            ALASKA DEPT.
Name: org, dtype: object

关于Python/Pandas 从结尾删除特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57256340/

相关文章:

python - 从我的 Facebook 应用程序的所有用户那里获取信息

python - 将终端输出写入文件

python - 如何删除某一列每一行中相同的单词?

python - 提高 pandas python 的性能

Python pandas : add new columns based on the existed a column value, 并将新列的值设置为 1 或 0

python - Pandas 更改所有列上的列数据类型

Python 包导入未纳入函数中

python - 我可以在 seaborn 和 networkx 之间协调颜色吗?

pandas - 如何将 Pandas <NA> 转换为 numy Nan?

python - Pandas :根据行值删除重复项