This is not a repetitive question, yet similar to
Select rows from a DataFrame based on values in a column in pandas
In that answer up in the previous link it is only based on one criteria what if I have more than one criteria.
I would like to select many rows in a column not only one based on particular values. For the sake of argument consider the DataFrame from the World Bank
import pandas.io.wb as wb
import pandas as pd
import numpy as np
df2= wb.get_indicators()
The way I select a certian value is as so
df2.loc[df2['id'] == 'SP.POP.TOTL']
and
df2.loc[df2['id'] == 'NY.GNP.PCAP.CD']
How may I select both in one new dataframe or say 3 or 4? such that the rows are:
'SP.POP.TOTL'
'NY.GNP.PCAP.CD'
Thank you in advance
答案 0 :(得分:5)
you may use .isin():
In [28]: df2[df2['id'].isin(['SP.POP.TOTL','NY.GNP.PCAP.CD'])]
Out[28]:
id name \
7478 NY.GNP.PCAP.CD GNI per capita, Atlas method (current US$)
9568 SP.POP.TOTL Population, total
source \
7478 World Development Indicators
9568 World Development Indicators
sourceNote \
7478 GNI per capita (formerly GNP per capita) is th...
9568 Total population is based on the de facto defi...
sourceOrganization \
7478 b'World Bank national accounts data, and OECD ...
9568 b'(1) United Nations Population Division. Worl...
topics
7478 Economy & Growth ; Climate Change
9568 Health ; Climate Change