Pandas присваивать значение, если значение из одного кадра данных существует в другом кадре данных - PullRequest
0 голосов
/ 04 апреля 2020

Итак, у меня есть 2 кадра данных. У одного есть список местоположений (стран и городов), а у другого есть местоположения с соответствующей информацией (например, координатами).

Первый, our_data: our_data

Второй , дБ: дБ

То, что я хочу, я хочу проверить, существуют ли страны в наши_данные в общие в дБ . Дело в том, что country вырезано из Twitter, и это грязно, поэтому в основном я хочу проверить, соответствует ли какое-либо из слов в строке соответствию common набору данных в другом кадре данных. Кроме того, если есть совпадение, я хочу сохранить te latlng из db как другой столбец в our_data .

Пока что я пробовал перебирать столбцы как-то, в основном безуспешно (я впервые работаю с Pandas, я делаю скребок в Твиттере и хочу отобразить каждый твит). Закрытия, которые я получил, были с этим:

our_data = our_data.assign(test = our_data.countries.isin(db.common))

и получили этот результат: результат

Я попытался с

our_data = our_data.assign(test = db.latlng if (our_data.countries.isin(db.common)) else "False")

и получил это Ошибка:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()

Как мне подойти к этому?

1 Ответ

0 голосов
/ 05 апреля 2020

Для этого вам нужно левое соединение:

import pandas as pd

result = pd.merge(our_data, db, how="left", left_on="countries", right_on="common")

Вы получите кадр данных с 5 столбцами: страны, primary_location, common, latlng capital1. Столбцы common, latlng и capitla1 содержат значения NaN, если совпадений не найдено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...