首页 > 解决方案 > 熊猫用字符串上的条件替换数据框中的值

问题描述

我需要一点帮助:

我有两列:id 和 class:

东风:

id      class
AB001   NaN
AB002   NaN
CDE001  NaN
CDE002  NaN

我想要的是如果id以AB开头,那么class就是AB,

但如果

id 以 CDE 开头,然后 class 是 CDE

所以我最终会得到:

id      class
AB001   AB  
AB002   AB
CDE001  CDE
CDE002  CDE

我只是无法理解它 - 有人可以帮忙吗?谢谢!

标签: pythonpandasstringreplace

解决方案


看起来你想剪掉所有的尾随数字,所以:

df['class'] = df['id'].str.extract('^(\D+)')[0]

输出:

       id class
0   AB001    AB
1   AB002    AB
2  CDE001   CDE
3  CDE002   CDE

更新:根据您的评论,您可以使用rstrip

df['class'] = df['id'].str.rstrip('0123456789')

或仍然extract

df['class'] = df['id'].str.extract('^(.*\D)\d+$')[0]

推荐阅读