Добавить поле в dataframe со значениями из другого dataframe
Есть два dataframes:
d = {'date': ['2020-08-01 01:26', '2020-08-01 01:30', '2020-08-01 01:32', '2020-08-01 01:33', '2020-08-01 01:35'],
'string': ['hello', 'world', 'friends', 'piece', 'great']}
df10 = pd.DataFrame(data=d)
df10
d = {'date': ['2020-08-01 01:26', '2020-08-01 01:27', '2020-08-01 01:28', '2020-08-01 01:29', '2020-08-01 01:30',
'2020-08-01 01:31', '2020-08-01 01:32', '2020-08-01 01:33', '2020-08-01 01:34', '2020-08-01 01:35',],
'int': [10, 5, 18, 25, 3, 17, 11, 15, 4, 5]}
df11 = pd.DataFrame(data=d)
df11
Необходимо добавить поле 'int' в df10 таким образом, чтобы значения в нем соответсвовали значениям из полей 'date' и 'int' df11.
Мое решение:
for i in df10['date']:
for y in df11['date']:
if i == y:
df10['int'] = df11['int']
Дает неверный результат:
Спасибо!
Ответы (2 шт):
Автор решения: strawdog
→ Ссылка
Был сегодня похожий вопрос. делайте merge:
df10 = df10.set_index(["date"])
df11 = df11.set_index(["date"])
res = df10.join(df11, how ="inner").reset_index()
res:
date string int
0 2020-08-01 01:26 hello 10
1 2020-08-01 01:30 world 3
2 2020-08-01 01:32 friends 11
3 2020-08-01 01:33 piece 15
4 2020-08-01 01:35 great 5
Автор решения: passant
→ Ссылка
В общем, я даже не буду приставать, причем тут "релевантность".
df11=df10.merge(df11, on="date")
Резульат:
date string int
0 2020-08-01 01:26 hello 10
1 2020-08-01 01:30 world 3
2 2020-08-01 01:32 friends 11
3 2020-08-01 01:33 piece 15
4 2020-08-01 01:35 great 5
Оно? И впредь постарайтесь, пожалуйста, пользоваться общепринятой терминологией.


