2017-08-29 135 views
3

訪問數據我有一個DateTimeIndex一個大熊貓數據幀:熊貓:有日期的列表,並DateTimeIndex

      A   B 
2016-04-25 18:50:06 440.967796 201.049600 
2016-04-25 18:50:13 441.054995 200.767034 
2016-04-25 18:50:20 441.142337 200.484475 
... 
2016-07-27 18:50:06 440.967796 201.049600 
2016-07-27 18:50:13 441.054995 200.767034 
2016-07-27 18:50:20 441.142337 200.484475 

我想提取使用日期列表指定日期yyyy-mm-dd的所有數據:['2016-04-25','2016-04-28',...]

我試過如下:

df[df.index.isin(['2016-04-25', '2016-04-26'])] 

Empty DataFrame 

我想檢索所有數據的日期,GI的(全日的數據)在此列表中

回答

3

您需要通過this solutions先卸下次VEN:

df = df[df.index.normalize().isin(['2016-04-25', '2016-04-26'])] 

df = df[df.index.floor('D').isin(['2016-04-25', '2016-04-26'])] 

另一種解決方案是比較DatetimeIndex.date,但需要使用numpy.in1d代替isin

df = df[np.in1d(df.index.date, pd.to_datetime(['2016-04-25', '2016-04-26']).date)] 

或者比較創建的字符串DatetimeIndex.strftime

df = df[np.in1d(df.index.strftime('%Y-%m-%d'), ['2016-04-25', '2016-04-26'])] 

print (df) 
           A   B 
2016-04-25 18:50:06 440.967796 201.049600 
2016-04-25 18:50:13 441.054995 200.767034 
2016-04-25 18:50:20 441.142337 200.484475 
+0

謝謝。我有一個後續問題。是否有可能在每個獨立的日子裏切斷第一個'n'數據行,而不復制任何數據?這些日子有不同的開始/結束時間和不同的數據行的數量 – user3142067

+0

嗯,嘗試'df = df.drop(df.groupby(df.index.date).head(2).index)' - 它刪除前2個值從每個日期。 – jezrael

+0

似乎工作。謝謝 – user3142067