Python pandas: получение значений из одной базы данных, присвоение им другого значения и замена их во второй базе данных - PullRequest
0 голосов
/ 04 июля 2018

У меня есть два кадра данных:

Dataframe 1:

userId  movieId rating  timestamp
0   1   2   3.5 1112486027
1   1   29  3.5 1112484676
2   1   32  3.5 1112484819
3   1   47  3.5 1112484727
4   1   50  3.5 1112484580

Dataframe 2:

   movieId    title                    genres
0    1        Toy Story (1995)         Adventure|Animation|Children|Comedy
1    2        Jumanji (1995)           Adventure|Children|Fantasy
2    3        Grumpier Old Men(1995)   Comedy|Romance
3    4        Waiting to Exhale (1995) Comedy|Drama|Romance
4    5  Father of the Bride Part II (1995)  Comedy

Оба кадра данных не имеют одинаковое количество строк. Я хочу заменить номера movieId в Dataframe 1 на названия фильмов, которые они представляют из dataframe 2. Как это сделать?

Я попробовал следующий код:

s = data2['title']
while i <= 131261:
    array[i]= data2.index([data2['movieId'] == i])
    i = i + 1

while pos<= len(array) - 1:

    data3 = data['movieId'].replace([data['movieId'] == i],'[data2[pos]]')

Но он показал следующую ошибку:

TypeError                           Traceback (most recent call last)
<ipython-input-50-c6bed86d99a5> in <module>()
1 s = data2['title']
2 while i <= 131261:
----> 3     array[i]= data2.index([data2['movieId'] == i])
      4     i = i + 1
      5 

TypeError: 'RangeIndex' object is not callable

В чем моя ошибка и кто-то может предложить лучшие способы?

1 Ответ

0 голосов
/ 04 июля 2018

Использование map от Series:

df1['movieId'] = df1['movieId'].map(df2.set_index('movieId')['title'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...