在两个不同的Pandas数据框中重新格式化非顺序商品ID

时间:2018-07-31 17:55:46

标签: pandas

我有两个数据库,一个电影的用户评分数据库,如下所示:

    userID  movieID  rating   timestamp
0        1       9      2.5  1260759144
1        1       7      3.0  1260759179
2        1       1      3.0  1260759182
3        2      13      2.0  1260759185
4        2       1      4.0  1260759205
5        3       6      2.0  1260759151
6        3      11      2.0  1260759187
7        3       4      2.0  1260759148
8        3       3      3.5  1260759125
9        4       2      2.0  1260759131

和一个movieID到电影名称的数据库,如下所示:

    movieID                                  title
0         1                       Toy Story (1995)
1         2                         Jumanji (1995)
2         3                Grumpier Old Men (1995)
3         4               Waiting to Exhale (1995)
4         6     Father of the Bride Part II (1995)
5         7                            Heat (1995)
6         9                         Sabrina (1995)
7         10                   Tom and Huck (1995)
8         11                   Sudden Death (1995)
9         13                      GoldenEye (1995)

问题在于第二个数据库中的movieID不是按顺序排列的(缺少数字5、8和12)。我需要它们以便以后在程序中查找。有没有一种方法可以按顺序重新设置ID的格式,并在评级数据库中更改相应的movieID,以便稍后查看电影?

1 个答案:

答案 0 :(得分:0)

首先,创建一个顺序ID字段:

movie_DB['new_movie_id'] = range(len(movie_DB))

然后,创建一个从旧ID到新ID的字典:

id_dict = dict(zip(movie_DB['movieID'], move_DB['new_movie_ID']))

在用户评级数据库中映射电影ID:

user_DB['new_movie_id'] = user_DB['movieID'].map(id_dict)