2017-10-14 3 views
1

J'ai une liste de dates dans un DF qui ont été converties en format AAAA-MM et qui ont besoin de sélectionner une plage. Voilà ce que je suis en train:Sélectionner la plage de dates à partir de Pandas DataFrame

#create dataframe  
data = ['2016-01','2016-02','2016-09','2016-10','2016-11','2017-04','2017-05','2017-06','2017-07','2017-08'] 
df = pd.DataFrame(data, columns = {'date'}) 

#lookup range 
df[df["date"].isin(pd.date_range('2016-01', '2016-06'))] 

Il ne semble pas fonctionner parce que la colonne de date n'est plus une colonne datetime. Le format doit être en AAAA-MM. Donc je suppose que la question est, comment puis-je faire une colonne datetime avec YYYY-MM? Puis-je avoir une aide s'il vous plait? Merci.

Répondre

0

Vous n'avez pas besoin d'une colonne de type datetime réelle ou de valeurs de requête pour que cela fonctionne. Keep it simple:

df[df.date.between('2016-01', '2016-06')] 

qui donne:

 date 
0 2016-01 
1 2016-02 

Cela fonctionne parce que les chaînes de date ISO 8601 peuvent être classés comme si elles étaient des chaînes simples. '2016-06' vient après '2016-05' et ainsi de suite.