如何使用python和multiindex执行v查找

时间:2019-02-11 20:20:03

标签: python pandas

在下面的数据框中,我有3列,索引,调整和类型。 TYP列与索引有关。因此,每个(x,1)多索引都有一个PWR值,每个(x,2)多索引都有一个GND值。

 index       Adj             TYP  
 (x,1)       (x, 2)          PWR
 (x,1)       (x, 3)          PWR
 (x,1)       (x, 5)          PWR
 (x,1)       (x, 6)          PWR
 (x,1)       (x, 7)          PWR
 (x,2)       (x, 1)          GND
 (x,2)       (x, 3)          GND
 (x,2)       (x, 4)          GND
 (x,2)       (x, 5)          GND
 (x,2)       (9, 6)          GND
 (x,2)       (x, 7)          GND

我想弄清楚如何使用索引和TYP之间的关系来填充第四列,称为“ Adj”。 TYP”。此列将具有ADJ和TYP之间的关系。如果仅对索引(x,1)和(x,2)执行此操作,则结果表将在下面。用文本解释起来很麻烦,但是本质上Adj列包含与index列相同的数据,只是顺序并不相同。我想用匹配的TYP填充第四列。

 index       Adj            TYP     Adj. TYP
 (x,1)       (x,2)          PWR     GND
 (x,1)       (x,3)          PWR
 (x,1)       (x,5)          PWR
 (x,1)       (x,6)          PWR
 (x,1)       (x,7)          PWR
 (x,2)       (x,1)          GND     PWR
 (x,2)       (x,3)          GND
 (x,2)       (x,4)          GND
 (x,2)       (x,5)          GND
 (x,2)       (9,6)          GND
 (x,2)       (x,7)          GND

我试图使用map,但这不会让我为多值索引重新编制索引。

df1['Adj. TYP'] = df1['Adj'].map(df1[index])

1 个答案:

答案 0 :(得分:1)

您可以尝试这个;

创建一个“查找”数据框:

        string indicating how to convert numbers whose conversion to
        double precision would lose accuracy, see type.convert. Can be
        abbreviated. (Applies also to complex-number inputs.)

将查找表中的值映射到df(存在匹配项),并删除NaN:

df_ = df[['index', 'TYP']].drop_duplicates()