如何将二维列表转换为单一行多列的Pandas DataFrame
解决方法
你现有代码的问题在于zip(a)会将二维列表的每个子列表作为独立元素打包,最终生成2行1列的DataFrame。要实现所有元素放在同一行、每个值对应独立列的效果,首先需要将嵌套的二维列表展平为一维结构,再构造DataFrame即可。你代码中写的嵌套for循环本身就是遍历所有元素的逻辑,直接把遍历到的元素收集为一维列表即可使用。
完整可运行代码
import pandas as pd a = [[1,2],[3,5,6]] # 展平二维列表为一维列表 flat_a = [item for sublist in a for item in sublist] # 构造单行DataFrame,外层加[]是为了将一维列表识别为行数据 df = pd.DataFrame([flat_a]) print(df) # 若需要自定义列名,可指定columns参数 df_with_col = pd.DataFrame([flat_a], columns=[f"d{i+1}" for i in range(len(flat_a))]) print("\n自定义列名后的输出:") print(df_with_col)
输出说明
运行后将得到1行5列的DataFrame,所有元素按原顺序分布在不同列中,符合预期需求。
内容的提问来源于stack exchange,提问作者DevLeb2022
相关产品推荐
相关产品推荐

