在兩個 Pandas DataFrame 之間進行選擇性查找/交叉參考/覆寫/部分連接的最佳/最快方法是什么?我不確定要使用正確的術語....
鑒于:
- 一個由數值和一些任意查找/參考字串填充的主表,按日期/月份索引
- 一個輔助表,與第一個表具有一致的索引。此資料框的列與主表中的任意查找/參考字串匹配,這些字串會隨時間變化,并用作替換主表中的值的查找列。
兩個表的索引不一定需要是完全相同的集合(甚至是連續的),但如果表 1中存在查找,它顯然需要表 2中的相應行。
即我想在表 1中找到每個查找/占位符,并用表 2中正確月份的正確查找值替換。
下面的例子:
表格1
| dte | 價值1 | 價值2 |
|---|---|---|
| 2022-01 | 1 | 2 |
| 2022-02 | 3 | 查找1 |
| 2022-03 | 查找3 | 4 |
| 2022-04 | 5 | 6 |
表 2
| dte | 查找1 | 查找2 | 查找3 |
|---|---|---|---|
| 2021-12 | 101 | 105 | 109 |
| 2022-02 | 102 | 106 | 110 |
| 2022-03 | 103 | 107 | 111 |
| 2022-10 | 104 | 108 | 112 |
結果
| dte | 價值1 | 價值2 |
|---|---|---|
| 2022-01 | 1 | 2 |
| 2022-02 | 3 | 102 |
| 2022-03 | 111 | 4 |
| 2022-04 | 5 | 6 |
我需要在我的用例中做一堆這樣的事情,所以希望至少能相當快地完成一些事情。我不是 Pandas 的專家,想知道是否有一種聰明的方法可以做到這一點。我可以遍歷表 1中的每一行/列,查找與表 2 中的列名匹配的值,然后在表 2中查找替換表 1中的值。在 Pandas 中似乎經常有一種聰明的方法來做這種事情,它會自動為你并行化。任何幫助,將不勝感激!
uj5u.com熱心網友回復:
一種簡單的方法是使用 replace ,不確定速度
out = tb1.set_index('dte').T.replace(tb2.set_index('dte').T).T
Out[172]:
value1 value2
dte
2022-01 1 2
2022-02 3 102
2022-03 111 4
2022-04 5 6
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/427011.html
上一篇:將迭代行附加到新資料框
