2016-04-04 19 views
4

Dies ist keine wiederholende Frage, doch ähnlich wieWählen Sie Zeilen aus einer Datenrahmen basierend auf mehrere Werte in einer Spalte in Pandas

Select rows from a DataFrame based on values in a column in pandas

In der Antwort auf diesen Link oben ist nur basierend auf einem Kriterium, wenn ich mehr als ein Kriterium habe.

Ich möchte viele Zeilen in einer Spalte nicht nur basierend auf bestimmten Werten auswählen. Aus Gründen der Argumentation betrachten die Datenrahmen von der Weltbank

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

So wie ich ein certian Wert wählen ist wie so

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

und

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

Wie kann ich beide wählen in ein neuer Datenrahmen oder sagen 3 oder 4? so dass die Zeilen:

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

Sie

+2

Wie dies aus der Antwort auf die Frage, die Sie verknüpft unterscheidet, die eine 'isin gibt 'Beispiel im zweiten Satz? – DSM

Antwort

4

Vielen Dank im Voraus können Sie verwenden .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 
Verwandte Themen