【问题标题】:Keep other variables when executing get_dummies in Pandas在 Pandas 中执行 get_dummies 时保留其他变量
【发布时间】:2016-11-27 06:05:51
【问题描述】:

我有一个带有 ID 变量和另一个分类变量的 DataFrame。我想用 get_dummies 从分类变量中创建虚拟变量。

dum = pd.get_dummies(df)

但是,这会使 ID 变量消失。我稍后需要这个 ID 变量来合并到其他数据集。

有没有办法保留其他变量。在 get_dummies 的文档中,我找不到任何东西。谢谢!

【问题讨论】:

  • 您可以为您的df 添加一个示例吗?我的第一次尝试是在调用get_dummies 时排除ID,然后再次添加该列。

标签: python-2.7 pandas dummy-variable


【解决方案1】:

您还可以在执行 get_dummies 之前将原始列复制到新列中。例如,

df['dum_orig'] = df['dum']
df = pd.get_dummies(df, columns=['dum'])

【讨论】:

    【解决方案2】:

    我找到了答案。您可以将虚拟数据集连接到原始数据集,如下所示。只要您在此期间不重新排序数据。

    df = pd.concat([df, dum], axis=1) 
    

    【讨论】:

    • 没错,但是如果您的 df 有一些索引,您可能会遇到问题,因为 concat 方法基于索引合并而 get_dummies 重置它。在这种情况下,我建议使用set_index 方法:df = pd.concat([df, dum.set_index(df.index)], axis=1)
    • 在 get_dummies 中仍然没有实现让您轻松完成此操作的参数吗?似乎有点像一个常见的问题......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    相关资源
    最近更新 更多