1

I have a list of locations and a dataframe like below and I want to select rows from a df with city and country columns where the location of the row (city and country) matches any of the pairs in the dataframe. The list of locations can have a bigger number of pairs which makes typing all conditions less desirable solution.

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   |

2 Answers 2

2

Here is one way reindex after set_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
Sign up to request clarification or add additional context in comments.

Comments

1

Change you list of pairs to a DataFrame. Next, do a join between the two DataFrames.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.