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