如果来自一个数据框的值存在于另一个数据框中,则熊猫分配值

时间:2020-04-04 20:53:12

标签: python pandas dataframe

所以,我有2个数据框。 一个拥有位置(国家和城市)列表,另一个拥有具有相应信息(例如坐标)的位置。

第一个,our_data: our_data

第二个数据库: db

我想要的是,我想检查 our_data 中的 countries 是否存在于 db 中的 common 中。事实是,国家是从Twitter抓取的,而且很乱,所以基本上我想检查字符串中的任何单词是否对应于另一个数据帧中的 common 数据集。另外,如果有匹配项,我想将 db 中的te latlng 保存为 our_data 中的另一列。

到目前为止,我尝试以某种方式遍历各列,但大部分都没有成功(这是我第一次与Pandas合作,我正在做Twitter抓取工具,并希望为每个推文进行映射)。我关闭的时间是这样的:

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

并获得以下结果: result

我尝试过

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 :(得分:0)

您需要左连接才能做到这一点

import pandas as pd

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

您将获得一个包含5列的数据框:国家/地区,primary_location,common,lattng capital1。如果未找到匹配项,则common,latlng和capitla1列将包含NaN值。

相关问题