如何在另一个数据框上通过类似 vlookup 的过程创建新的 pandas 列

How to create new pandas column by vlookup-like procedure on another data-frame

我有一个看起来像这样的数据框。它将用于使用两个分类变量映射值。也许将其转换为字典会更好。

第二个数据框非常大,截图如下所示。我想从分类变量中获取值以基于第一个数据帧创建一个新属性(列)。

例如...

具有 FICO_cat 的 (700,720] 和 OrigLTV_cat 的 (75,80] 的行将获得值 5。

具有 FICO_cat 的 (700,720] 和 OrigLTV_cat 的 (85,90] 的行将获得值 6。

有没有有效的方法来做到这一点?

如果您的列标签是 FICO_cat 值,而您的 IndexOrigLTV_cat,这应该有效:

给定一个数据框 df:

         780+  (740,780)  (720,740)
(60,70)     3          3          3
(70,75)     4          5          4
(75,80)     3          1          2

做:

df = df.unstack().reset_index()
df.rename(columns = {'level_0' : 'FICOCat', 'level_1' : 'OrigLTV', 0 : 'value'}, inplace = True)

输出:

     FICOCat  OrigLTV  value
0       780+  (60,70)      3
1       780+  (70,75)      4
2       780+  (75,80)      3
3  (740,780)  (60,70)      3
4  (740,780)  (70,75)      5
5  (740,780)  (75,80)      1
6  (720,740)  (60,70)      3
7  (720,740)  (70,75)      4
8  (720,740)  (75,80)      2