2017-10-10 32 views
0

我有一个特性,那就是一个数字,我想追溯所有可能性并使其成为二进制特性。数字的二进制化python

特点:

FEATURE1 
1 23 
3 20 
4 23 
5 1 
7 8 
8 23 

想输入:

FEATURE1 23 20 .... 
1 23   1 0 .... 
3 20   0 1 .... 
4 23   1 0 .... 
5 1   0 0 .... 
7 8   0 0 .... 
8 23   1 0 .... 
  • 我没有很多不同的数字

你能帮助吗?

+0

什么是分类的依据是什么? –

回答

2

尝试pd.get_dummies()功能在熊猫。

import pandas as pd 
df = pd.DataFrame({'X': ['a', 'b', 'c', 'a']}) 
df = df.join(pd.get_dummies(df['X'])) 
print(df) 

输出:

X a b c 
0 a 1 0 0 
1 b 0 1 0 
2 c 0 0 1 
3 a 1 0 0 
+0

谢谢!我可以自动添加一个字符串到col名称? (如feature_a) – hila

+0

您可以指定任何前缀,以下是文档:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.get_dummies.html –

1

另一种方法是使用熊猫pivot_table

df = pd.DataFrame({'FEATURE1': ['10', '13', '13', '22', '15']}) 
df.pivot_table(index=df.index, columns='FEATURE1', aggfunc=len   
     ).fillna(value=0)