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

Python用列表创建字典生成pandas DataFrame时行列错位如何解决

问题解决方法

现有代码的问题在于,直接将all_data中的子列表作为对应key的列值,但all_data里的每个子列表实际是一行数据,而非一列数据,导致最终DataFrame的行列映射反了。

按照你必须先创建字典再生成DataFrame的要求,只需要在构造字典前将all_data转置即可,使用zip(*all_data)即可快速实现列表的行列转置:zip(*all_data)会把all_data中每个子列表的对应位置元素打包成新的元组,相当于把原来按行存储的数据转为按列存储,正好匹配keys到列的映射需求。

修改后的完整代码如下:

import pandas as pd

keys= ["car", "cat", "sky"]
value_a = ['red', 'furry','cloudy']
value_b = ['blue', 'puffy','rainy']
value_c = ['yellow', 'pet','clear']
all_data = [value_a ,value_b,value_c]

def csv_exporter(keys, all_data):
    # 先转置all_data,再和keys配对构造字典
    dictionary = dict(zip(keys, zip(*all_data)))
    df = pd.DataFrame(dictionary)
    print(df)

csv_exporter(keys, all_data)

运行后输出结果为:

car    cat     sky
0     red  furry  cloudy
1    blue  puffy   rainy
2  yellow    pet   clear

完全符合预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:45:06