Python如何删除DataFrame中整数后附带的字符串内容

问题说明
使用Python pandas处理数据时,需要删除DataFrame中整数后跟随的字符串内容,例如示例值90(subject to approval)需要处理为整数90。
测试代码如下:
import pandas as pd name_dict = { 'Name': ['a','b','c','d'], 'Score': ['90(subject to approval)',80,95,20] } df = pd.DataFrame(name_dict) print (df) df.set_index('Name').loc['a', 'Score']
实现方法
当前Score列同时存在字符串、整数两种类型的值,先统一转为字符串后,提取开头的数字部分再转回整数即可,两种常用实现方式:
- 正则提取(通用性更强,适配整数后接任意非数字后缀的场景)
# 匹配开头连续数字,提取后转整数 df['Score'] = df['Score'].astype(str).str.extract(r'^(\d+)').astype(int)
- 按分隔符切割(适合后缀固定以
(开头的场景)
# 按左括号切割,取切割后的第一部分转整数 df['Score'] = df['Score'].astype(str).str.split('(').str[0].astype(int)
处理后DataFrame的Score列全部为整数值,执行df.set_index('Name').loc['a', 'Score']会直接返回整数90,不再携带后续的括号备注内容。
内容的提问来源于stack exchange,提问作者AK007
相关产品推荐
相关产品推荐

