如何拆分DataFrame字符串列 分离数字与字母提取浮点数值
你可以通过 pandas 的字符串提取方法结合正则匹配实现需求,核心思路是捕获所有数字.数字格式的子串。
核心代码实现
import pandas as pd # 构造示例DataFrame,和你的数据结构一致 df = pd.DataFrame({ 'X': [ '1.6 aaa_2345', '1.6 aaa_2345', 'Bbb 1.4t_2890', 'Bbb 1.4t_2891', '1.2 ccc_4570' ] }) # 提取浮点部分生成新列 df['float_X'] = df['X'].str.extract(r'(\d+\.\d+)').astype(float)
结果说明
运行后新列float_X的输出和你期望的完全一致:
0 1.6 1 1.6 2 1.4 3 1.4 4 1.2 Name: float_X, dtype: float64
正则规则r'(\d+\.\d+)'会自动匹配每行第一个符合浮点格式的子串,即使浮点后面跟了字母(比如示例里的1.4t)也会正确提取前面的数值部分,适配你给出的所有场景。
内容的提问来源于stack exchange,提问作者benaia
相关产品推荐
相关产品推荐

