Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
206 views
in Technique[技术] by (71.8m points)

python - Pandas select based on conditions on multiple columns and a set of values

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   |
question from:https://stackoverflow.com/questions/65838471/pandas-select-based-on-conditions-on-multiple-columns-and-a-set-of-values

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...