熊猫将数字映射到另一个数字

时间:2018-09-15 15:32:35

标签: python pandas

我有~5000行,并且'Round'列中的所有值都从-17。我正在尝试创建一个新列,并将其映射到-1 = 0的位置,然后1-7中的任何内容都是1。我尝试了一个简单的地图并列出了所有映射,但这是行不通的。

combine['Drafted'] = combine.Round.map({'-1':0,'1':1,'2':1,'3':1,'4':1,'5':1,'6':1,'7':1})

上面的逻辑是否有问题,无法正常工作?

1 个答案:

答案 0 :(得分:1)

我想您可以使用以下代码来实现它:

df = pd.DataFrame({'Round': [-1, 1, 0, 7, -1, 2, 3, 5, -1, 4, 6]})
df['Drafted'] = np.where(df['Round'] == -1, 0, 1)
print(df)

输出如下:

    Round  Drafted
0      -1        0
1       1        1
2       0        1
3       7        1
4      -1        0
5       2        1
6       3        1
7       5        1
8      -1        0
9       4        1
10      6        1