繁体   English   中英

如果来自一个 dataframe 的值存在于另一个 dataframe 中,则 Pandas 赋值

[英]Pandas assign value if value from one dataframe exists in another dataframe

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

第一个,our_data: our_data

第二个,db: db

我想要的是,我想检查our_data中的国家是否在db共同存在。 问题是,国家是从 Twitter 刮下来的,而且很乱,所以基本上我想检查字符串中的任何单词是否对应于另一个 dataframe 中的公共数据集。 另外,如果有匹配项,我想将 te latlngdb保存为our_data中的另一列。

到目前为止,我尝试以某种方式遍历列,但大多不成功(这是我第一次使用 Pandas,我正在做一个 Twitter 刮刀并希望为每条推文使用 map)。 我得到的关闭是这样的:

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

我应该如何处理这个?

你需要一个左连接来做到这一点:

import pandas as pd

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

你会得到一个 dataframe 有 5 列:国家、主要位置、通用、纬度资本 1。 如果未找到匹配项,则 common、latlng 和 capitla1 列包含 NaN 值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM