Pandas:如何使用其他数据帧的列值从具有相同行值的数据帧返回行?

2024-10-03 13:24:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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的“国家”列中提取值。目标是如果df2中的任何一个值存在于df1['frequency'],那么我不想从df['country']中选取这些值。例如:如果“期限”值与“频率”类似,则我不需要df1中的相关“国家”值。 我对熊猫还不熟悉,而且学得很快。寻求如下所示的预期输出。请建议

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

Tags: importdataframepandasbase国家country频率pd
1条回答
网友
1楼 · 发布于 2024-10-03 13:24:01

IIUC:

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']

相关问题 更多 >