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

如何将Pandas DataFrame转为以索引为键、NumPy数组为值的字典?

如何将Pandas DataFrame转换为索引为键、行值为NumPy数组的字典?

这确实是to_dict('index')的一个小局限——它默认会把每行转成字典而不是NumPy数组。不过有几个简单的办法能轻松实现你的需求,我给你列几个常用的方案:

方法1:使用apply逐行转换

利用apply按行处理,把每行直接转为NumPy数组,再转成字典:

result_dict = df.apply(lambda row: row.to_numpy(), axis=1).to_dict()
  • axis=1指定按行遍历
  • row.to_numpy()将单行数据转换为NumPy数组
  • 最后调用to_dict()就会自动把DataFrame的索引作为字典的键

方法2:字典推导式(直观高效)

直接遍历DataFrame的索引,用loc取出对应行并转为数组,适合小到中等规模的数据集:

result_dict = {idx: df.loc[idx].to_numpy() for idx in df.index}

这个写法逻辑非常清晰,一眼就能看明白是把每个索引对应行转成数组作为值。

方法3:批量转换后配对索引(大数据集首选)

如果你的DataFrame数据量很大,先一次性把整个DataFrame转为二维NumPy数组,再和索引配对生成字典,效率会更高:

array_data = df.to_numpy()
result_dict = dict(zip(df.index, array_data))
  • df.to_numpy()一次性完成整个数据集的格式转换,比逐行处理更快
  • zip(df.index, array_data)把索引和每行数组一一对应,再用dict()转为字典

验证结果

你可以打印其中一个键对应的值来确认:

print(result_dict[0])
# 输出类似:array([0.88095214, 0.62363749])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:28:43