繁体   English   中英

Python中的双向查找

[英]Two-Way lookup in Python

所以基本上我有2个这样的DataFrame:

表格1

苹果 香蕉 橙子 日期
1 2 4 2020
3 5 2 2021
7 8 9 2022

表_2

水果
苹果 2020
苹果 2021
苹果 2022
香蕉 2020
香蕉 2021
香蕉 2022
橙子 2020
橙子 2021
橙子 2022

所以我想根据水果名称和相应的年份从 Table_1 中查找 Table_2 的水果值。

最终结果应如下所示:

水果 数字
苹果 2020 1
苹果 2021 3
苹果 2022 7
香蕉 2020 2
香蕉 2021 5
香蕉 2022 8
橙子 2020 4
橙子 2021 2
橙子 2022 9

以 Excel 为例,可以执行以下操作:

=INDEX(Table1[[Apple]:[Orange]],MATCH([@year],Table1[Date],0),MATCH([@fruit],Table1[[#Headers],[Apple]:[Orange]],0))

但是在 Python 中这样做的方法是什么?

假设 ,您可以meltmerge

out = (df2
   .merge(df1.rename(columns={'Date': 'year'})
              .melt('year', var_name='fruit', value_name='number'),
           how='left'
          )
)

输出:

    fruit  year  number
0   Apple  2020       1
1   Apple  2021       3
2   Apple  2022       7
3  Banana  2020       2
4  Banana  2021       5
5  Banana  2022       8
6  Orange  2020       4
7  Orange  2021       2
8  Orange  2022       9

暂无
暂无

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

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