我有一个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
答案 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