2016-11-01 11 views
3

Wie mehrere Zeilen eines Datenrahmens durch Liste der TerminePython Pandas Zeilen selektieren durch Liste der Daten

dates = pd.date_range('20130101', periods=6) 
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD')) 

In[1]: df 

Out[1]: 
        A   B   C   D 
2013-01-01 0.084393 -2.460860 -0.118468 0.543618 
2013-01-02 -0.024358 -1.012406 -0.222457 1.906462 
2013-01-03 -0.305999 -0.858261 0.320587 0.302837 
2013-01-04 0.527321 0.425767 -0.994142 0.556027 
2013-01-05 0.411410 -1.810460 -1.172034 -1.142847 
2013-01-06 -0.969854 0.469045 -0.042532 0.699582 

myDates = ["2013-01-02", "2013-01-04", "2013-01-06"] 

So ist der Ausgang

    A   B   C   D 
2013-01-02 -0.024358 -1.012406 -0.222457 1.906462 
2013-01-04 0.527321 0.425767 -0.994142 0.556027 
2013-01-06 -0.969854 0.469045 -0.042532 0.699582 

Antwort

6

auswählen können Sie index.isin() Methode eine erstellen verwenden sollte logischer Index für subsetting:

df[df.index.isin(myDates)] 

enter image description here

+0

Dank. Das war zu einfach. – Pat

4

Konvertieren Sie Ihre Eingabe in ein DateTimeIndex:

df.loc[pd.to_datetime(myDates)] 

        A   B   C   D 
2013-01-02 -0.047710 -1.827593 -0.944548 -0.149460 
2013-01-04 1.437924 0.126788 0.641870 0.198664 
2013-01-06 0.408820 -1.842112 -0.287346 0.071397 
Verwandte Themen