猿问

匹配 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 开始分解索引的方法?


冉冉说
浏览 111回答 1
1回答

蝴蝶不菲

这是factorize:df['Pairing'] = pd.factorize(df['Name'])[0]
随时随地看视频慕课网APP

相关分类

Python
我要回答