2016-11-21 53 views
0

我有一个熊猫数据框并想添加一个新列。对于'数'中小于15的所有值,我想加1,对于所有更大的值,0.我尝试了不同的方法,但是我没有收到期望的结果。尤其是,因为我遇到了问题结构体。这里是我想要做的:熊猫数据框中的二进制整数

number binary 
12  1 
89  0 
12  1 
56  0 
62  0 
2  1 
657  0 
5  1 
73  0 

回答

3
In [6]: (df['number'] < 15).astype(int) 
Out[6]: 
0 1 
1 0 
2 1 
3 0 
4 0 
5 1 
6 0 
7 1 
8 0 
Name: number, dtype: int32 

In [7]: df['binary'] = (df['number'] < 15).astype(int) 

In [8]: df 
Out[8]: 
    number binary 
0  12  1 
1  89  0 
2  12  1 
3  56  0 
4  62  0 
5  2  1 
6  657  0 
7  5  1 
8  73  0 
+0

我试过同乘布尔然后,但没有'astype(INT)'。用你的方式它的作品。 – matthew

2

你可以将它转换为1。

import pandas as pd 
df = pd.DataFrame({'number': [12, 89, 12, 56, 62, 2, 657, 5, 73]}) 
df['binary'] = (df.number < 15)*1