熊猫用字符串条件替换数据帧中的值

Den*_*guy 1 python string replace pandas

我需要一些帮助:

我有两列:id 和 class:

df:

id      class
AB001   NaN
AB002   NaN
CDE001  NaN
CDE002  NaN
Run Code Online (Sandbox Code Playgroud)

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

但如果

id 以 CDE 开头,然后类是 CDE

所以我最终会得到:

id      class
AB001   AB  
AB002   AB
CDE001  CDE
CDE002  CDE
Run Code Online (Sandbox Code Playgroud)

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

Qua*_*ang 5

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

df['class'] = df['id'].str.extract('^(\D+)')[0]
Run Code Online (Sandbox Code Playgroud)

输出:

       id class
0   AB001    AB
1   AB002    AB
2  CDE001   CDE
3  CDE002   CDE
Run Code Online (Sandbox Code Playgroud)

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

df['class'] = df['id'].str.rstrip('0123456789')
Run Code Online (Sandbox Code Playgroud)

或仍然与extract

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