在Pandas DataFrame中将字符串值映射为整数

7 投票
1 回答
5004 浏览
提问于 2025-04-17 21:54

在Pandas的DataFrame中,如何把一列里的字符串替换成整数。我大约有500个字符串在这个DataFrame里,需要把它们替换成从'1'开始的整数。

示例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

1 个回答

10

你可以先创建一个临时的数据表,然后把这个临时的数据表合并回你原来的数据表里:

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

现在把这个临时的数据表合并回你最初的数据表中

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

撰写回答