簡體   English   中英

Pandas:如何使用其他 dataframe 的列值從 dataframe 返回具有相同行值的行?

[英]Pandas: How to return the row from dataframe having same row values by using column value of other dataframe?

import pandas as pd

df1 = pd.DataFrame({'country': ['EUR.1M', 'EUR.1M', 'EUR.3M','EUR.3M','EUR.6M','EUR.6M','USD.3M', 'USD.3M', 'USD.3M', 
                        'HKD.3M','HKD.3M','HKD.3M','GBP.6M', 'GBP.6M','GBP.6M'], 
       'inst': ['base', 'base', 'depo', 'Fut', 'Fut','base', 'irs','base', 'irs','Fut', 'irs', 'irs',
                'irs','Fut', 'irs'],
       'frequency' : ['Eur35Y', 'Eur40Y', 'Eur12Y','Eur10Y','Eur20Y','Eur40Y','USDIRS23Y', 'USDswap15Y','USD20Y',
                      'HKD50Y', 'HKD20Y','HKD10Y','GBP19Y', 'GBPIRS15Y','GBP60Y']})

df2 = pd.DataFrame({'tenor': ['Eur40Y','HKD50Y']})

我有上面提到的兩個數據框,我對 df1 的兩列('國家'和'頻率')感興趣。 但是,我試圖通過比較 df2 從 df1 的“國家”列中提取值。 目標是如果 df1['frequency'] 中存在 df2 中的任何一個值,那么我不想從 df['country'] 中選擇值。 例如:如果“男高音”值與“頻率”相似,那么我不想要來自 df1 的關聯“國家”值。 我是 pandas 的新手,學習速度很快。 求預期 output 如下。 請建議。

list = ['EUR.3M','USD.3M','GBP.6M']

國際大學聯盟:

s = df1.loc[df1["frequency"].isin(df2["tenor"]),"country"]

print (df1.loc[~df1["country"].isin(s),"country"].unique().tolist())

#['EUR.3M', 'USD.3M', 'GBP.6M']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM