Pandas把数字映射到另一个麻木

2024-04-26 12:15:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有~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})

上面的逻辑是不是有什么问题,不能用?你知道吗


Tags: map内容逻辑roundcombinedrafted
1条回答
网友
1楼 · 发布于 2024-04-26 12:15:36

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

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

相关问题 更多 >