>>>table1 col1 col2 row1 A A row2 B A row3 A B row4 B A
我想使用one-hot表达式或任何其他方法将上述数据框中的一列仅转换为以下DataFrame
>>>table1 col1_A col1_B col2 row1 1 0 A row2 0 1 A row3 1 0 B row4 0 1 A
提前谢谢
答案 0 :(得分:1)
使用pd.get_dummies
In [211]: pd.get_dummies(table1)
Out[211]:
col1_A col1_B col2_A col2_B
row1 1 0 1 0
row2 0 1 1 0
row3 1 0 0 1
row4 0 1 1 0
答案 1 :(得分:1)
最简单的方法是get_dummies
+ concat
-
df
col1 col2
row1 A A
row2 B A
row3 A B
row4 B A
i = pd.get_dummies(df.col1, prefix='col1')
j = df.drop('col1', axis=1) # remove the column being OHE'd, thanks to the English puppy.
pd.concat([i, j], 1)
col1_A col1_B col2
row1 1 0 A
row2 0 1 A
row3 1 0 B
row4 0 1 A
答案 2 :(得分:0)
试试这个:
df = pd.DataFrame({"col1":['A','B']*2,'col2':['A','A','B','A']},index=['row1','row2','row3','row4'])
df
col1 col2
row1 A A
row2 B A
row3 A B
row4 B A
仅在您想要的列上应用get_dummies,然后将其与包含其余列的数据框合并回来
df1 = pd.get_dummies(df.loc[:,"col1"]).join(df.loc[:,"col2"])
df1
A B col2
row1 1 0 A
row2 0 1 A
row3 1 0 B
row4 0 1 A
答案 3 :(得分:0)
让我们使用一些列选择,pd.get_dummies
和assign
加入数据框。
df[['col2']].assign(**pd.get_dummies(df[['col1']]))
输出:
col2 col1_A col1_B
row1 A 1 0
row2 A 0 1
row3 B 1 0
row4 A 0 1