在pandas数据帧中二进制化整数

时间:2016-11-21 09:47:47

标签: python pandas numpy binary

我有一个pandas数据框,想要添加一个新列。对于'number'中小于15的所有值,我想添加1,对于所有更大的值,0。我尝试了不同的方法,但我没有收到所需的结果。特别是,因为我有问题结构体。这就是我想做的事情:

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

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:4)

您可以将其转换为布尔值,然后乘以1.

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