使用字符串上的条件替换dataframe中的值

2024-05-14 14:33:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一些帮助:

我有两列:id和class:

df:

id      class
AB001   NaN
AB002   NaN
CDE001  NaN
CDE002  NaN

我想知道的是,如果id以AB开头,那么类就是AB

但如果

id以CDE开头,然后类是CDE

因此,我将以以下内容结束:

id      class
AB001   AB  
AB002   AB
CDE001  CDE
CDE002  CDE

我就是想不起来-有人能帮忙吗?谢谢大家!


Tags: iddfabnanclasscdecde002cde001
2条回答

使用正则表达式提取的另一种方法

Ex:

df = pd.DataFrame({"id":['AB001', 'AB002', 'CDE001', 'CDE002']})
df['Class'] = df['id'].str.extract(r"^([A-Z]+)")
print(df)

输出:

       id Class
0   AB001    AB
1   AB002    AB
2  CDE001   CDE
3  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]

相关问题 更多 >

    热门问题