这不是一个重复的问题,但类似于
Select rows from a DataFrame based on values in a column in pandas
在上一个链接的回答中,它仅基于一个标准,如果我有多个标准怎么办。
我想根据特定值选择一列中的多行,而不仅仅是一行。为了争论起见,请考虑世界银行的 DataFrame
import pandas.io.wb as wb
import pandas as pd
import numpy as np
df2= wb.get_indicators()
我选择certian值的方式是这样的
df2.loc[df2['id'] == 'SP.POP.TOTL']
和
df2.loc[df2['id'] == 'NY.GNP.PCAP.CD']
我如何在一个新的数据框中选择两者,或者说 3 或 4?这样的行是:
'SP.POP.TOTL'
'NY.GNP.PCAP.CD'
提前致谢
你可以使用.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