在pandas中,基于列中的多个值选择DataFrame中的行

24
这不是一个重复的问题,但类似于

在pandas中基于列中的值选择DataFrame中的行

在上面链接中的答案只基于一个条件,如果我有多个条件怎么办。

我想选择列中的许多行,而不仅仅是基于特定值的一行。 为了论证,考虑来自世界银行的DataFrame。

import pandas.io.wb as wb
import pandas as pd
import numpy as np
df2= wb.get_indicators()

我选择特定值的方式如下

df2.loc[df2['id'] == 'SP.POP.TOTL']

并且

df2.loc[df2['id'] == 'NY.GNP.PCAP.CD']

我应该如何在一个新的数据框中选取两个、三个或四个?使得行是:

'SP.POP.TOTL'
'NY.GNP.PCAP.CD'

提前感谢您。


4
这与您链接的问题的答案有何不同,该答案在第二句中给出了一个“isin”的示例? - DSM
1个回答

52

你可以使用.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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接