在Pandas DataFrame中将字符串值映射为整数
在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')