0
votes

J'ai un fichier de données avec une colonne de données allant du 2005-01-01 à 2014-12-31. Comment puis-je trier les colonnes?

INPUT:

data["Date"] = ["2005-01-01","2006-01-01","2007-01-01", ... "2013-12-31","2014-12-31"]


3 commentaires

Stackoverflow.com/questions/11067027/... Essayez ce que vous avez suggéré ici, mais avant de créer une liste triée de vos années


Voulez-vous que l'ensemble de lataframe soit trié sur date ou juste la date la colonne ?


@Shubhamsharma je veux que l'ensemble de lataframe soit trié par la colonne "Date".


5 Réponses :


0
votes

Essayez d'utiliser des expressions Lambda.

from datetime import datetime

data = {"Date": ["2005-01-02", "2005-01-01", "2014-12-30", "2014-12-31"]}
data["Date"].sort(key=lambda date: datetime.strptime(date, "%Y-%m-%d"))


1 commentaires

Merci monsieur pour la réponse.



0
votes
>>> import datetime
>>> dates = [datetime.datetime.strptime(ts, "%Y-%m-%d") for ts in data["Date"]]
>>> dates.sort()
>>> sorteddates = [datetime.datetime.strftime(ts, "%Y-%m-%d") for ts in dates]
>>> sorteddates
['2010-01-12', '2010-01-14', '2010-02-07', '2010-02-11', '2010-11-16', '2010-11-
22', '2010-11-23', '2010-11-26', '2010-12-02', '2010-12-13', '2011-02-04', '2011
-06-02', '2011-08-05', '2011-11-30']

3 commentaires

Merci monsieur pour la réponse.


C'est notre copain de responsabilité de garder la communauté informative et utile


et ajouter sur votre question. Il gérera également les années bissexuelles.



0
votes

Premier:

data.drop(columns = ['Day','Month','Year'], inplace=True)


1 commentaires

Merci monsieur pour une telle réponse rapide. Cela a bien fonctionné.



0
votes

Pourquoi n'essayez-vous pas de créer une nouvelle colonne dans laquelle vous modifiez le format de la date? Comme ceci: xxx

Vous pouvez désormais trier votre DataFrame en fonction de la colonne Date_new_Format et vous obtiendrez ce dont vous avez besoin.


0 commentaires

0
votes

Utilisation:

data["temp"] = pd.to_datetime(data["Date"]).dt.strftime("%d-%Y-%m")
data = data.sort_values(by="temp").drop(columns=["temp"])


0 commentaires