import pandas as pd
data = [['red',3]
,['green',5]
,['yellow',4]
,['red',6]]
columns = ['color','age']
df = pd.Dataframe(data,columns=columns)
df
| color | age |
|---|
| 0 | red | 3 |
|---|
| 1 | green | 5 |
|---|
| 2 | yellow | 4 |
|---|
| 3 | red | 6 |
|---|
# 通过 get_dummies 方法将 Series 变成 one-hot的形式
one_hot_color = pd.get_dummies(df['color']
,prefix='color' # 产生的 one-hot 的新列的前缀名称是 color
,prefix_sep='_') # 产生的 one-hot 的新列的分隔符是 _
one_hot_color
| color_green | color_red | color_yellow |
|---|
| 0 | 0 | 1 | 0 |
|---|
| 1 | 1 | 0 | 0 |
|---|
| 2 | 0 | 0 | 1 |
|---|
| 3 | 0 | 1 | 0 |
|---|
# 通过 df.join 将数据合并
df.join(one_hot_color)
| color | age | color_green | color_red | color_yellow |
|---|
| 0 | red | 3 | 0 | 1 | 0 |
|---|
| 1 | green | 5 | 1 | 0 | 0 |
|---|
| 2 | yellow | 4 | 0 | 0 | 1 |
|---|
| 3 | red | 6 | 0 | 1 | 0 |
|---|