编程语言
首页 > 编程语言> > Python Pandas:为源列的每个不同值创建一个新列(布尔输出作为列值)

Python Pandas:为源列的每个不同值创建一个新列(布尔输出作为列值)

作者:互联网

我试图根据其内容将数据框的源列分为几列,然后以以下方式用布尔值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填充新列,但这是非常无效的.

有没有一种快速有效的方法呢?

解决方法:

你可以试试:

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

或者如果您更喜欢sklearn

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
matrix=enc.fit_transform(df['source_column'])

标签:dummy-variable,python,pandas,python-3-x,dataframe
来源: https://codeday.me/bug/20191011/1891235.html