python - 在 df 列中匹配名称,然后添加一个数字以将它们配对
问题描述
我有一个 df 有两列。目标是从列中读取并在Name
列中添加一个数字Pairing
,但如果有多个相同的名称,它们将获得相同的数字。例如:
Name | Pairing
-----------
Charles |1
Scott |2
Scott |2
Anne |3
Anne |3
Anne |3
Bart |4
我试过使用str.replace
,但我相信我只能使用关键词。非常感谢有关如何解决此问题的任何提示。谢谢!
编辑:
所以我做了一些调整,现在我尝试在组合中添加第三列:
Name | type | Pairing
---------------------------
Charles |Circle | 1
Scott |Square | 2
Scott |Triangle | 3
Anne |Rectangle | 4
Anne |Rectangle | 4
Anne |Oval | 5
Bart |Octagon | 6
我正在尝试在Pairing
列中获取结果,因此只要在Name
&中匹配type
它们就会得到相同的数值。
我已经尝试过这种df['Pairing'] = pd.factorize(df['Name'].str[:6])[0] + pd.factorize(df['type'].str[:6])[0]
方法,但它并没有给我准确的结果。
是否还可以从 1 而不是 0 开始分解索引?
解决方案
这是factorize
:
df['Pairing'] = pd.factorize(df['Name'])[0]
推荐阅读
- python - 训练有效,但预测产生恒定值(使用 pytorch 的 cnn)
- typescript - 在 Firestore 中获取所有可以访问其子项的文档
- javascript - 在按钮单击中显示组件(使用挂钩)
- python - 为 Spotify API PKCE 创建代码挑战,为什么它不是字节形式?
- java - 从 c++ 将动态 java 代理加载到 jvm
- angular - 不能使用 Angular Material 日期范围日期过滤器
- python - TypeError:'str'和'int'的实例之间不支持'<='重复
- sql - 将 SQL 中的 VARCHAR 列转换为日期时间格式?
- python - 将 Python 列表划分为仅包含唯一值的列表
- python-3.x - Python - 错误 - ValueError:解包的值太多(预期为 6)