2014-03-12 37 views
5

在Pandas中DataFrame如何用整數映射一列中的字符串。我在DataFrame中有大約500個字符串,需要用從'1'開始的整數替換它們。使用整數在Pandas Dataframe中映射字符串值

樣品DataFrame

        Request count 
547    GET /online/WebResource.axd 37506 
424    GET /online/2/2/22001.aspx 13315 
699   POST /online/2/6/1/261001.aspx 13236 
546   GET /online/ScriptResource.axd 12255 
492    GET /online/2/6/Home.aspx 10462 
660    POST /online/2/2/22001.aspx 9803 

我已將所有請求都帶到列表中。

requestlist = df.Request.unique() 

不知道如何將這些請求映射到1-500。類似的問題。 python pandas replacing strings in dataframe with numbers

+0

所以要分析合併這回你原來的數據幀url請求在.axd或.aspx之前搜索字符串,然後轉換爲int?你會用這個int做什麼,這會形成一個索引還是映射到另一個列? – EdChum

+0

@EdChum:與我們映射的url和整數沒有關聯。我只需要將它們映射以便使其更容易進行其他處理。 –

+0

所以你只想枚舉獨特的請求是正確的? – EdChum

回答

9

所以,你可以做的是建立一個臨時的數據幀,併合並這回你現有的數據幀:

temp_df = pd.DataFrame({'Request': df.Request.unique(), 'Request_id':range(len(df.Request.unique()))}) 

現在

df = df.merge(temp_df, on='Request', how='left') 
+0

謝謝,工作! :) –

相關問題