【发布时间】:2018-07-16 17:39:37
【问题描述】:
我正在尝试根据其内容将数据框的源列拆分为几列,然后按以下方式用布尔值 1 或 0 填充这些新生成的列:
原始数据框:
ID source_column
A value 1
B NaN
C value 2
D value 3
E value 2
生成以下输出:
ID source_column value 1 value 2 value 3
A value 1 1 0 0
B NaN 0 0 0
C value 2 0 1 0
D value 3 0 0 1
E value 2 0 1 0
我想过手动创建每个不同的列,然后为每个列使用一个函数并 .apply,用 1 或 0 填充新列,但这非常无效。
有没有快速有效的方法?
【问题讨论】:
-
您要查找的关键字是“虚拟变量”。我已提交编辑,将此标签添加到您的问题中。请注意,您可以使用
for value in set(df['source_column']): df['value {}'.format(value)] = (df['source_column'] == value).apply(int)执行此操作,但使用get_dummies方法更好。
标签: python python-3.x pandas dataframe dummy-variable