Python如何拆分pandas DataFrame列字符串值并转换为整数或浮点数
解决方案
你可以在拆分字符串后通过apply方法遍历列表元素做类型转换,以下是不同场景的实现方式:
1. 统一转整数类型
import pandas as pd # 示例DataFrame df11 = pd.DataFrame({'A': ['1'+'_'+'2']}) # 拆分后转整数列表 df11["Timetaken"] = df11['A'].str.split('_').apply(lambda x: [int(i) for i in x])
运行后df11["Timetaken"].iloc[0]的输出为[1, 2],元素均为整数类型。
2. 统一转浮点数类型
把上面代码里的int替换为float即可:
df11["Timetaken"] = df11['A'].str.split('_').apply(lambda x: [float(i) for i in x])
输出结果为[1.0, 2.0]。
3. 自动适配整型/浮点型,兼容异常值
如果字符串里既有整数也有小数,或者可能存在非数字字符,可以用pd.to_numeric做转换,还能通过errors参数控制异常处理逻辑:
# 自动识别数值类型,遇到非数字默认抛出错误 df11["Timetaken"] = df11['A'].str.split('_').apply(lambda x: [pd.to_numeric(i) for i in x]) # 如果要忽略非数字字符转成NaN,添加errors参数即可 df11["Timetaken"] = df11['A'].str.split('_').apply(lambda x: [pd.to_numeric(i, errors='coerce') for i in x])
内容的提问来源于stack exchange,提问作者SoKu
相关产品推荐
相关产品推荐

