首页 > 解决方案 > Pandas 将数字映射到另一个数字

问题描述

我有~5000行,列中的所有值'Round'都从-17。我正在尝试创建一个新列,它映射 where -1= 0,然后映射来自1-7is 1。我尝试了一个简单的地图并列出了所有映射,但这不起作用。

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

上面的逻辑是否有问题,它不起作用?

标签: pythonpandas

解决方案


我想你可以使用下面的代码来实现它:

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

推荐阅读