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