python - Pandas 将数字映射到另一个数字
问题描述
我有~5000
行,列中的所有值'Round'
都从-1
到7
。我正在尝试创建一个新列,它映射 where -1
= 0
,然后映射来自1-7
is 1
。我尝试了一个简单的地图并列出了所有映射,但这不起作用。
combine['Drafted'] = combine.Round.map({'-1':0,'1':1,'2':1,'3':1,'4':1,'5':1,'6':1,'7':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
推荐阅读
- jquery - 内容滚动时JQuery拖放不起作用
- python - pdf矿工如何提取图像
- rust - 如何包含位于子文件夹中的公共模块
- karate - 我可以使用空手道来测试带有多个后续斜杠的 URL 吗?
- python - 更改 Outlook 调色板 win32com?
- spring-mvc - 为什么在入口点 url 中添加项目名称时得到 404
- java - 如何从 Kotlin 的 viewPager 中保存选定的项目?
- python - 在python中将列表的元素拆分两次,由多个数字作为字符串组成
- laravel - 从 laravel 中的数据透视表中删除问题
- python - Xception(图像分类)中的损失和准确性没有提高