python - 熊猫用字符串上的条件替换数据框中的值
问题描述
我需要一点帮助:
我有两列: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
我只是无法理解它 - 有人可以帮忙吗?谢谢!
解决方案
看起来你想剪掉所有的尾随数字,所以:
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]
推荐阅读
- reactjs - 任何人都可以帮助我应该如何开始或给我一个我可以编写的可能单元测试的抽象形式
- jquery - AJAX POST 中的 405 Method Not Allowed 错误
- python - 在使用 numpy 唯一计数时通过避免 python 循环来提高性能
- azure - 关于通过 VM 上的 azure runbook 安装工具
- python-3.x - 显示距离关机还有多长时间
- javascript - 如何将多个过滤器应用于 json 数据
- c# - 从 reportviewer 向报表服务器传递凭据时未经授权
- django - 如何在 Django 中为用户批量“重新分配”所有外键
- r - 将几列的内容合并为一列
- json - Play/Scala:地图被序列化为数组