You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas DataFrame转换为float64类型的NumPy数组

如何将CSV中逗号分隔的字符串列转换为float64类型的NumPy数组

你的问题核心是data列的每个元素都是逗号分隔的字符串,直接调用to_numpy()只会生成存储字符串的object数组,需要先将这些字符串解析为数值类型。以下是几种可行的解决方案:

方法一:拆分字符串为多列后转类型

import pandas as pd
import numpy as np

# 读取CSV文件
df = pd.read_csv('input.csv')
# 将每个字符串按逗号拆分并展开为多列,转换为float64后转成NumPy数组
float64_array = df['data'].str.split(',', expand=True).astype(np.float64).to_numpy()
  • 解释:str.split(',', expand=True)把每行的字符串拆分成独立的列,astype(np.float64)将所有列的数据类型统一转为float64,最后to_numpy()输出二维float64数组。

方法二:直接解析字符串为数值数组

如果不想生成中间DataFrame列,可以用np.fromstring直接解析单个字符串:

import pandas as pd
import numpy as np

df = pd.read_csv('input.csv')
# 对每个字符串解析为float数组,再组合成二维NumPy数组
float64_array = np.array(df['data'].apply(lambda x: np.fromstring(x.strip(), sep=',')).tolist(), dtype=np.float64)
  • 解释:np.fromstring(x.strip(), sep=',')会自动将逗号分隔的字符串转为float数组,tolist()将Series中的数组转为普通列表,最后用np.array生成二维float64数组。

注意事项

如果你的原始数据中包含省略号(如样本中的...),需要先清理数据再转换,否则会触发类型转换错误:

# 移除字符串中的省略号
df['data'] = df['data'].str.replace('...', '', regex=False)
# 再执行上述转换步骤

验证结果:执行print(float64_array.dtype)会输出float64,符合需求。

内容的提问来源于stack exchange,提问作者pro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 07:35:21