根据多列和一组值的条件进行选择

2024-09-29 01:27:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个位置列表和一个如下所示的数据框,我想从带有city和country列的df中选择行,其中行的位置(city和country)匹配数据框中的任何一对。位置列表可能有更多的对,这使得键入所有条件都不太理想

Locations = [(London,Uk), (Paris, US), (Toronto, Canada)]
  
    | City     | Country  | value |
    | -------- | -------- | ----- |
    | London   | Canada   | 10    |
    | London   | UK       | 200   |
    | Paris    | France   | 300   |
    | Toronto  | Canada   | 40    |
    | Paris    | US       | 100   |

Tags: 数据citydf列表键入条件countryus
2条回答

将对列表更改为数据帧。接下来,在两个数据帧之间进行连接

这里有一个方法reindexset_index之后

Locations = [('London','Uk'), ('Paris', 'US'), ('Toronto', 'Canada')]
out = df.set_index(['City','Country']).reindex(Locations).reset_index()
out
Out[83]: 
      City Country value
0   London      Uk   NaN
1    Paris      US   100
2  Toronto  Canada    40

相关问题 更多 >