2017-01-31 88 views
1

我想要將數據集子集包括在兩個日期之間的行。然而,當我這個功能:Python - 兩個日期時間之間的子集數據

data_norm[(data_norm['publication_date'] > '2016-09-01') & (data_norm['publication_date'] <= '2016-09-30')] 

我得到這個:

Empty DataFrame 
Columns: [categories, company, contents, id, levels, locations, model_type, name, publication_date, refs, short_name, tags, type] 
Index: [] 

我的猜測是,在我的子集函數的日期從數據不同。這是數據:

0 2017-01-30 21:28:12.102749 
1 2017-01-30 21:24:32.670365 
2 2016-12-29 18:56:37.000000 
3 2017-01-13 12:10:55.000000 
4 2017-01-30 21:28:33.180670 
Name: publication_date, dtype: datetime64[ns] 

任何想法?

回答

3

這似乎是更好的評論,但我沒有代表其中的一個。從您給出的示例數據中,空數據框是正確的結果。沒有提供的日期屬於您的搜索。如果你要你的結束日期更改爲2017年1月1日......

data_norm[(data_norm['publication_date'] > '2016-09-01') & 
      (data_norm['publication_date'] <= '2017-01-01')] 

它應該返回

2016-12-29 18:56:37.000000 
Name: publication_date, dtype: datetime64[ns] 
+0

我提供的數據只是前5行 –

+1

您確定您提供的日期範圍在您的數據集中不是空的嗎?你設定的條件適用於我。 – 3novak

+1

我應該在我的文章中更清楚。我將他的帖子中的結束日期從2016-09-30更改爲2017-01-01,以表明它會返回一些內容。 – rtk22

0

下面的代碼也可以工作:

data_norm.ix[(data_norm.publication_date >= '2016-09-01') & (data_norm.publication_data <= '2017-01-01'), : ]