python - 将数据框值映射到列表的索引
问题描述
我已经使用此代码分解了我以前的数据框
df['name'], mapping = df['name'].factorize()
现在我正在尝试使用变量映射为我的新数据帧获取相同的分解值
映射
Index(['Ranny','Bob','Timmy','Lisa'],
dtype='object')
我的新数据框
╔════════════════╗
║ Name Apples ║
╠════════════════╣
║ Lisa 5 ║
║ Timmy 3 ║
║ Lisa 2 ║
║ Bob 1 ║
╚════════════════╝
将列名映射到列表后我想要的数据框
╔════════════════╗
║ Name Apples ║
╠════════════════╣
║ 3 5 ║
║ 2 3 ║
║ 3 2 ║
║ 1 1 ║
╚════════════════╝
我不知道该怎么做。我尝试了一个循环,但是当数据集很大时它需要太多时间。有没有一种有效的方法来做到这一点?
解决方案
如果我理解正确,您可以pd.Index.get_Indexer
在这里使用:
df2['Name'] = mapping.get_indexer(df2['Name'])
print(df)
Name Apples
0 3 5
1 2 3
2 3 2
3 1 1
推荐阅读
- html - Angular - 尝试从 html 选择标签获取选项值时的未定义值
- azure - 我们应该为所有正在开发的产品使用一个 Azure 容器注册表 (ACR),还是每个产品使用一个 ACR?
- excel - 访问 VBA 传输电子表格的可见性
- c# - c#一个类用于所有winforms文本框和组合框事件,无需直接调用
- javascript - 这是在2020年取消表单提交的正确方法吗?
- sweetalert2 - 在“then”中显示验证消息,而不是自动关闭 Swal
- javascript - 我可以在哪里将 JWT 令牌存储在 React js 中以验证应用程序后端的各种路由?
- angular - Angular 9 Karma-Jasmine 测试不适用于 ViewChild
- php - 清理浏览器中的当前页面 URL
- r-markdown - rmarkdown results = "asis" 开始用 html 代码添加 "```{=html}"