python - 如何映射值并将许多值分配给“其他”类别?
问题描述
我有以下 DataFrame df
:
col1 col2
3 A
3 B
5 A
1 C
6 B
如何将 3 替换为 0 并将 5 替换为 1,而其余数字应替换为 2?
预期结果:
col3 col2
0 A
0 B
1 A
2 C
2 B
这是我到目前为止写的:
vals = {3:0, 5:1}
df["col3"] = df["col1"].map(vals)
解决方案
因为map
返回不匹配值的缺失值,所以添加Series.fillna
:
vals = {3:0, 5:1}
df["col3"] = df["col1"].map(vals).fillna(2).astype(int)
print (df)
col1 col2 col3
0 3 A 0
1 3 B 0
2 5 A 1
3 1 C 2
4 6 B 2
推荐阅读
- android - java.lang.NoClassDefFoundError: xxx.xxx.xxx.Xxx$Xxx(仅限 Dalvik)
- tensorflow - VGG16的conv3、conv4、conv5输出是什么?
- android - 如何使用 Unity Mobile Notification 包检查用户是否通过通知进入应用程序?
- android - 如何在 Android Studio UI 设计器中添加 AndroidX 组件?
- apache-spark - 如何使用 Spark 将输出写入现有 HDFS 目录下的单独文件?
- c# - Orchard Core CMS FETCH 语句中选项 NEXT 的使用无效
- javascript - 如何从 WooCommerce 获取产品价格,以便可以将其与 javascript 一起使用?
- reactjs - 动态建表
- spring-boot - 为 Spring Boot 应用程序创建自定义会话 cookie
- docker - 是否可以像执行到 docker 容器或在 pod 内运行的容器一样执行到 K8s pod?