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

Python如何为DataFrame列唯一值生成列表存入字典后转换为DataFrame

实现方案

方法1:使用defaultdict实现(匹配你的逻辑需求)

from collections import defaultdict
import pandas as pd

# 你已有的初始变量
OS_name = df['OS_name'].tolist()
OS_values = df.OS_name.unique().tolist()

# 初始化key为OS唯一值、value为对应0/1列表的字典
os_map = defaultdict(list)

for unique_os in OS_values:
    # 生成当前OS对应的0/1列表
    os_map[unique_os] = [1 if current_os == unique_os else 0 for current_os in OS_name]

# 将字典转换为DataFrame
result_df = pd.DataFrame(os_map)

注意:你提供的示例代码中循环范围为range(0,len(OS_name)-1)会丢失列表最后一个元素,上述实现默认保留全部元素,如果你确实需要去掉最后一个元素,将列表推导式中的OS_name替换为OS_name[:-1]即可。

方法2:pandas原生极简实现

不需要额外转换列表、调用defaultdict,直接用pandas内置的独热编码接口即可得到完全一致的结果,性能更优:

result_df = pd.get_dummies(df['OS_name'], dtype=int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:36:02