从Pandas DataFrame中获取基于另一个元素的元素

时间:2016-06-07 13:17:19

标签: python pandas dataframe merge match

如果我有两个pandas DataFrames:

y_given_x=

     y|x       probability
0    3  0.11649033348126
1    4  0.02749279374044
2    5  0.02741036003810
3    6  0.34035636232767
4    7  0.16491358255074

y=

     y_value       probability
0        0  0.07185269131381
1        1  0.08588676002891
2        2  0.08098779633814
3        3  0.10091839626284
4        4  0.13794741280748
5        5  0.00755474774703
6        6  0.09515832452838
7        7  0.16606587544047
8        8  0.09969027799237
9        9  0.15393771754059

如何才能获得y匹配y|x匹配的y_value的所有元素?所以这种情况下的预期输出是:

output=

         y_value       probability
0        3  0.10091839626284
1        4  0.13794741280748
2        5  0.00755474774703
3        6  0.09515832452838
4        7  0.16606587544047

1 个答案:

答案 0 :(得分:1)

我认为您可以使用merge

print (pd.merge(y,
                y_given_x,
                left_on='y_value',
                right_on='y|x',
                suffixes=('','_'))[['y_value','probability']])

   y_value  probability
0        3     0.100918
1        4     0.137947
2        5     0.007555
3        6     0.095158
4        7     0.166066