簡體   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