2016-11-01 27 views
3

的名單如何通過日期Python的大熊貓選擇行按日期

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"] 

的列表來選擇一個數據幀的多行,所以輸出應該是

    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 

回答

6

您可以使用index.isin()方法來創建對於子集邏輯索引:

df[df.index.isin(myDates)] 

enter image description here

+0

感謝。那太容易了。 – Pat

4

將您進入一個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