基于参考表的熊猫设定值的规范方法

问题描述 投票:0回答:1

我有两个数据框,一个参考表和一个主表。我想将参考表中的值映射到主表,必要时覆盖。视觉形式:

enter image description hereenter image description here

import pandas as pd

ref_data = {'Fruit':['Apple','Pear','Orange'],
            'Price':[50,60,70]}

reference_table = pd.DataFrame(ref_data)

main_data = {'col1':[1,2,3,4,5],
             'col2':[5,5,5,5,5],
             'Fruit':['Durian','Pineapple','Apple','Orange','Pear'],
             'Price':[40,120,454,12,43]}

main_data = pd.DataFrame(main_data)

这似乎是一个很常见的用例。我发现以下问题似乎很合适,但在某种意义上似乎有点“怪异”。只想知道是否有适当的方法可以做到这一点?

Pandas -- set row values based on values in another table

谢谢!

python pandas
1个回答
0
投票

我们通常使用np.where

s=reference_table.set_index('Fruit').Price.reindex(main_data.Fruit).values
main_data['Price']=np.where(np.isnan(s),main_data['Fruit'],s)
© www.soinside.com 2019 - 2024. All rights reserved.