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

如何将Pandas DataFrame转换为含索引列的行对象数组?

Pandas DataFrame 转前端行对象数组的高效方案

问题场景

现有如下Pandas DataFrame:

Description Test
0        Some    3
1       Thing    e
2        Test  NaN

需要将其转换为前端所需的行对象数组,格式要求如下:

[
{'id': 0, 'description':'some', 'test':'3'},
{'id': 1, 'description':'Thing', 'test':'e'},
{'id': 2, 'description':'Test', 'test':'NaN'},
]

其中原DataFrame中的NaN需转换为对应空值(示例中用字符串'NaN'表示),寻求比循环或pydash更高效的实现方式。

高效实现方法

直接用Pandas内置的to_dict('records')方法,搭配列名重命名、索引转换和空值填充即可,全程利用Pandas底层优化的矢量操作,效率远高于手动循环或第三方工具。

代码示例

import pandas as pd
import numpy as np

# 构造原始DataFrame
df = pd.DataFrame({
    'Description': ['Some', 'Thing', 'Test'],
    'Test': ['3', 'e', np.nan]
})

# 1. 重命名列名为小写,匹配前端要求
df = df.rename(columns={'Description': 'description', 'Test': 'test'})
# 2. 添加id列,用原DataFrame的索引值
df['id'] = df.index
# 3. 将NaN替换为指定的空值标识(这里按示例用'NaN',也可换成'')
df = df.fillna('NaN')
# 4. 转换为目标格式的行对象数组
result = df[['id', 'description', 'test']].to_dict('records')

print(result)

输出结果

[
 {'id': 0, 'description': 'Some', 'test': '3'},
 {'id': 1, 'description': 'Thing', 'test': 'e'},
 {'id': 2, 'description': 'Test', 'test': 'NaN'}
]

为什么这个方法高效

to_dict('records')是Pandas底层基于C实现的操作,避免了Python层面的循环开销,处理大规模数据时性能优势尤为明显,同时代码简洁易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:23:15