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

如何使用含列表的字典创建单行Pandas DataFrame

如何用字典直接创建单行Pandas DataFrame?

这个问题我之前也踩过坑,其实核心是Pandas解析字典生成DataFrame的逻辑差异导致的~

先搞清楚为什么会出现5行的情况

当你直接执行pd.DataFrame(d)时,Pandas的处理逻辑是:

  • 把字典的键作为列名
  • 检查每个值的长度:如果某个值是列表/数组(长度为5),另一个是标量(长度为1),Pandas会自动把标量广播成和列表长度一致的数组,所以就生成了5行——val_1依次取列表里的每个元素,val_2每行都填充为4。

而append(d)的时候,Pandas会把整个字典当作一行独立数据来处理:列表会被保留为单个单元格的值,标量也作为单个值,所以就得到了你想要的单行效果。

直接创建单行DataFrame的几种方法

方法1:把字典包裹在列表中(最推荐)

这是最简单直接的方式,告诉Pandas这个字典是一行数据:

import pandas as pd
d = {'val_1': [1,2,3,4,5], 'val_2': 4}
df = pd.DataFrame([d])
print(df)

输出结果:

val_1  val_2
0  [1, 2, 3, 4, 5]      4

方法2:使用from_records方法

和方法1逻辑一致,专门用于从记录(比如字典列表)生成DataFrame:

df = pd.DataFrame.from_records([d])

输出和方法1完全相同。

方法3:先转成Series再转置

如果需要更灵活的处理,可以先把字典转成Series,再通过转置得到单行DataFrame:

df = pd.Series(d).to_frame().T

同样会生成你想要的单行结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:31:32