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

使用pd.get_dummies编码Google Play数据集时报Columns must be same length as key错误

报错原因

pd.get_dummies() 作用于单列Series时,会根据该列的唯一取值数量,返回对应列数的DataFrame。你当前代码尝试将多列的独热编码结果,直接赋值给原DataFrame的单个Type列,两边维度不匹配,因此触发ValueError。

解决方案

根据你的使用需求,选择对应处理方式即可:

  • 需求1:仅保留单列编码值替换原Type列
    如果Type列仅包含2种取值(Google Play数据集的Type通常只有Free/Paid两类),可以通过drop_first=True丢弃冗余列,得到单列编码结果后再赋值:
df['Type'] = pd.get_dummies(df['Type'], drop_first=True)
  • 需求2:保留所有独热编码列
    如果需要保留所有取值对应的独热列,不要赋值给原Type单列,直接将编码结果合并到原DataFrame即可,推荐两种写法:
    写法1:直接指定列编码,自动替换原列
# 自动删除原Type列,新增Type_Free、Type_Paid等编码列
df = pd.get_dummies(df, columns=['Type'], prefix='Type')

写法2:手动拼接后删除原列

# 拼接编码列
df = pd.concat([df, pd.get_dummies(df['Type'], prefix='Type')], axis=1)
# 可选:删除原始未编码的Type列
df.drop('Type', axis=1, inplace=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:15:02