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

如何将长度不确定的列表按指定列顺序追加至DataFrame?

解决方案

核心思路

把数字列表和指定列顺序的前N个列(N为列表长度)一一映射成字典,再将字典转为单行DataFrame,最后合并到原DataFrame中,未匹配的列自动填充空值(NaN)。

代码实现

import pandas as pd
from pandas import DataFrame

# 初始化目标DataFrame
df = DataFrame(columns=['A', 'B', 'C', 'D', 'E', 'F'])

def append_to_df(target_df, cols_order, num_list):
    # 仅取列顺序中与列表长度匹配的前N个列,构建数据字典
    data_dict = dict(zip(cols_order[:len(num_list)], num_list))
    # 将字典转为单行DataFrame
    new_row = pd.DataFrame([data_dict])
    # 合并到原DataFrame并重置索引
    return pd.concat([target_df, new_row], ignore_index=True)

测试示例

示例1:列顺序为['B','C','D','E','F'],列表为[2,4,6]

df = append_to_df(df, ['B','C','D','E','F'], [2,4,6])
print(df)

输出结果:

ABCDEF
0NaN246NaNNaN

示例2:列顺序为['E','D','C','B','A'],列表为[4,6]

df = append_to_df(df, ['E','D','C','B','A'], [4,6])
print(df)

输出结果:

ABCDEF
0NaN246NaNNaN
1NaNNaNNaN64NaN

说明

  • 用pd.concat替代已弃用的df.append(),保证代码兼容性;
  • ignore_index=True避免合并后出现重复索引;
  • 未被列表覆盖的列自动填充NaN,对应表格中的空单元格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:55:20