熊猫从一列中获取一种热编码为布尔值

Ste*_*one 3 python boolean pandas

我正在考虑熊猫数据框。我想找到一种创建第二个Dataframe的有效方法。

import pandas as pd
data = {"column":[0,1,2,0,1,2,0]}   
df = pd.DataFrame(data) 
Run Code Online (Sandbox Code Playgroud)
column
0
1
2
0
1
2
0
Run Code Online (Sandbox Code Playgroud)
column0  column1 column2
true      false     false
false      true     false
false      false     true
true      false     false
false      true     false
false      false     true
true      false     false
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 7

这是一个get_dummies问题,但您还需要指定dtype=bool以获取布尔列:

pd.get_dummies(df['column'], dtype=bool)                                                                                                  
       0      1      2
0   True  False  False
1  False   True  False
2  False  False   True
3   True  False  False
4  False   True  False
5  False  False   True
6   True  False  False

pd.get_dummies(df['column'], dtype=bool).dtypes                                                                                          
0    bool
1    bool
2    bool
dtype: object
Run Code Online (Sandbox Code Playgroud)
# carbon copy of expected output
dummies = pd.get_dummies(df['column'], dtype=bool)
dummies[:] = np.where(pd.get_dummies(df['column'], dtype=bool), 'true', 'false')  

dummies.add_prefix('column')
  column0 column1 column2
0    true   false   false
1   false    true   false
2   false   false    true
3    true   false   false
4   false    true   false
5   false   false    true
6    true   false   false
Run Code Online (Sandbox Code Playgroud)