如何将DataFrame中的字符串列转换为float类型的numpy.ndarray?
解决方案
没有直接实现该需求的内置函数,由于你的Feature列存储的是类数组格式的字符串,需要先做字符串清洗再完成类型转换,具体操作如下:
完整代码实现
import pandas as pd import numpy as np # 1. 清洗Feature列的无效符号(方括号、引号、逗号、多余空格) df['Feature'] = df['Feature'].str.replace(r"[\[\]', ]+", " ", regex=True).str.strip() # 2. 转换为float类型numpy数组 float_np_arr = np.array( df['Feature'].apply(lambda s: [float(num) for num in s.split()]).tolist() )
说明
- 上述代码默认你示例中的
...是打印时的显示截断,实际字符串中存储了全量数值。如果...是实际存储在字符串中的截断内容,需要先导出完整的原始数据再做转换,截断后的字符串无法生成完整数值数组。 - 需确保所有Feature行的数值个数一致,否则最终生成的会是object类型的数组,而非标准的float二维数组。
- 可通过以下代码验证转换结果:
print(type(float_np_arr)) # 输出应为 <class 'numpy.ndarray'> print(float_np_arr.dtype) # 输出应为 float64
内容的提问来源于stack exchange,提问作者Shubhasmita Roy
相关产品推荐
相关产品推荐

