比较来自不同数据帧的两个值,并基于熊猫中的添加值

贞洁

需要比较两个不同的 Dataframe 并根据结果将值添加到列

country = {'Year':[2020,2021],'Host':['Mexico','Panama'],'Winners':['Canada','Japan']}

country_df = pd.DataFrame(country,columns=['Year','Host','Winners'])
    Year  Host      Winners
0   2020  Mexico    Canada
1   2021  Panama    Japan
all_country = {'Country': ['USA','Mexico','USA','Panama','Japan'],'Year':[2021,2020,2020,2021,2021]}
all_country_df=pd.DataFrame(all_country,columns=['Country','Year']
Country     Year
0   USA     2021
1   Mexico  2020
2   USA     2020
3   Panama  2021
4   Japan   2021

我想将 all_country_df 与 country_df 进行比较,以找出给定年份中哪个国家是东道主以及获胜者,例如

all_country= {'Country':['USA','Mexico','USA','Panama','Japan'],'Year':[2021,2020,2020,2021,2021],'Winner':[None,None,None,None,'Winner'],'Host':[None,'Host',None,'Host',None]}
all_Country_df=pd.DataFrame(all_country,columns=['Country','Year','Winner','Host'])

像这样


    Country Year    Winner  Host
0   USA     2021    None    None
1   Mexico  2020    None    Host
2   USA     2020    None    None
3   Panama  2021    None    Host
4   Japan   2021    Winner  None
U12-转发

尝试使用mergenp.where

newdf = all_country_df.merge(country_df)
newdf['Winners'] = np.where(newdf['Country'].ne(newdf['Winner']), np.nan, 'Winners')
newdf['Host'] = np.where(newdf['Country'].ne(newdf['Host']), np.nan, 'Host')
print(newdf)

输出:

  Country  Year  Host  Winners
0     USA  2021   nan      nan
1  Panama  2021  Host      nan
2   Japan  2021   nan   Winner
3  Mexico  2020  Host      nan
4     USA  2020   nan      nan

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R-比较两列中不同长度的两个数据帧的相同值

逐行比较两个熊猫数据帧

通过列值比较两个熊猫数据帧的行

比较两个熊猫数据帧中数据的布尔逻辑

来自两个不同数据帧的列之间的成对比较

比较两个熊猫数据帧中的值,与顺序无关

如何基于一行中的值和不同的列名合并两个熊猫数据帧?

基于两个不同列中的两个条件的子集数据帧R

比较两个熊猫数据帧的内容,即使行的顺序不同

如何比较基于列的两个不同大小的数据帧?

比较两个不同的熊猫列中的值

找出熊猫中两个不同数据帧的交集

基于具有相同对值的两列合并熊猫数据帧,但在两个数据帧中以不同顺序显示

来自熊猫数据帧的两个时间值之间的行

两个如何比较来自两个不同数据框的熊猫的两行

如何比较来自两个不同数据帧的两个句子的函数中的处理时间减少?

大熊猫:比较来自两个不同大小的不同数据帧的字符串列

比较两个熊猫数据框的日期,如果日期相似,则添加值?

比较两个熊猫数据帧的行的最快方法?

比较两个熊猫数据帧的行?

应用具有来自两个不同数据帧的参数的函数,并使用 group by。(熊猫)

如何比较pyspark中两个不同数据帧中的两列

如何在两个不同的熊猫数据框中相互比较值

比较来自不同数据帧的两个系列,找到匹配的地方用第三个系列值替换

比较两个熊猫数据帧中的值以保持运行计数

组合来自两个不同数据帧的两列以删除 Pandas 中的缺失值

用来自另一个基于公共列的数据帧的值替换熊猫数据帧中的值

显示来自两个不同数据帧的两列的两个值的差异,而不会丢失其他列

比较来自两个不同 pyspark 数据帧的两对列以显示不同的数据