Pandas 在两个不同的数据帧中重新格式化非顺序项ID

Pandas 在两个不同的数据帧中重新格式化非顺序项ID,pandas,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

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

    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                                  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)
以及电影ID到电影名称数据库,如下所示:

    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                                  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)

问题是第二个数据库中的电影ID不是按顺序排列的(缺少数字5、8和12)。我需要它们,以便在以后的程序中查找。是否有办法按顺序重新格式化ID,并更改分级数据库中相应的电影ID,以便我以后可以查找电影?

首先,创建顺序ID字段:

movie_DB['new_movie_id'] = range(len(movie_DB))
然后,创建从旧ID到新ID的dict:

id_dict = dict(zip(movie_DB['movieID'], move_DB['new_movie_ID']))
在用户分级数据库中映射电影ID:

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

在您的示例中,没有重叠。如果没有名字,人们将如何确定要更改哪些ID。此外,对于查找,您不必将它们按顺序排列。
我需要它们按顺序排列,以便稍后在程序中进行查找。
是“程序”仍在Pandas中,还是某些外部依赖项?如果像@harvpan提到的那样,Pandas不是一个要求。我已经重新格式化了示例,使其具有重叠。由于我构建程序的方式,它们确实需要按顺序排列,没有遗漏的值。i、 e[1,2,3,4],而不是[1,3,4,5]@harvpan