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

如何在Python中从Pandas DataFrame各列生成目标嵌套列表?

嘿,这个问题我碰到过!你现在得到的是按行排列的嵌套列表,而我们需要的是按列来聚合元素,其实只要把DataFrame的行和列转个向就行啦,给你几个简单的方法:

方法1:转置DataFrame后转列表

这是最直观的方式,先通过.T把DataFrame转置(列变行、行变列),再用.values.tolist()转成嵌套列表:

# 如果Date是普通列,先选中需要的列再转置
mylist = df[['A', 'B', 'C', 'D']].T.values.tolist()
# 如果Date是索引,直接转置即可
mylist = df.T.values.tolist()

方法2:用apply遍历列转列表

可以用apply把每一列转换成列表,再整体转成嵌套列表:

mylist = df[['A', 'B', 'C', 'D']].apply(list).tolist()

df.apply(list)会把每一列都单独变成一个列表,最后.tolist()就把整个结构转成你要的嵌套格式啦。

方法3:借助NumPy数组转置

Pandas的.values本质是NumPy数组,我们可以直接对数组转置后再转列表:

mylist = df[['A', 'B', 'C', 'D']].values.T.tolist()

这个方法和第一种原理类似,只是直接操作底层的NumPy数组,处理大数据量时效率也不错。

举个实际运行的例子,用你给出的数据测试:

import pandas as pd

# 构造你的DataFrame
data = {
    'Date': [1, 2, 3, 4],
    'A': ['A1', 'A2', 'A3', 'A4'],
    'B': ['B1', 'B2', 'B3', 'B4'],
    'C': ['C1', 'C2', 'C3', 'C4'],
    'D': ['D1', 'D2', 'D3', 'D4']
}
df = pd.DataFrame(data)

# 用方法1得到结果
mylist = df[['A', 'B', 'C', 'D']].T.values.tolist()
print(mylist)
# 输出:[['A1', 'A2', 'A3', 'A4'], ['B1', 'B2', 'B3', 'B4'], ['C1', 'C2', 'C3', 'C4'], ['D1', 'D2', 'D3', 'D4']]

完全符合你想要的嵌套列表格式~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:23:48