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

如何将指定DataFrame转换为以Type列为索引的特定列表?

更优的DataFrame转指定格式列表的实现方法

你需要将Type列值作为列表索引、Value列值作为对应元素,空缺索引填充空字符串,下面是几种比手动遍历更高效简洁的pandas原生实现方式:

方法1:set_index + reindex 组合

借助pandas的索引对齐特性,一步完成索引匹配与填充:

import pandas as pd

df = pd.DataFrame([['Value1', 1], ['Value3', 3], ['Value4', 4]], columns=['Value', 'Type'])

# 设置Type为索引,重新覆盖0到Type最大值的全范围索引,空缺填充空字符串
result_series = df.set_index('Type')['Value'].reindex(range(df['Type'].max() + 1), fill_value='')
# 转换为目标列表
result_list = result_series.tolist()

print(result_list)  # 输出: ["", "Value1", "", "Value3", "Value4"]

方法2:直接构造Series处理

如果不想修改原DataFrame的结构,可以单独构造Series后处理:

import pandas as pd

df = pd.DataFrame([['Value1', 1], ['Value3', 3], ['Value4', 4]], columns=['Value', 'Type'])

# 用Type作为索引创建Series,再重新索引补全空缺
value_series = pd.Series(df['Value'].values, index=df['Type'])
result_list = value_series.reindex(range(value_series.index.max() + 1), fill_value='').tolist()

print(result_list)

方案对比

  • 你的遍历方法需要手动维护双索引逻辑,代码冗余且容易在Type非连续/乱序时出错,时间复杂度为O(n)。
  • 上述pandas原生方法利用了内部优化的向量化操作,效率更高,代码更简洁,能自动适配Type列的各种分布情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 19:12:33