0
votes

Comment ajouter des mois et des jours dans Python Data Set?

Donc, j'ai un jeu de données avec une colonne de «temps». Le temps n'est que des années et je voudrais ajouter un mois et une date au hasard à la colonne TIME sans modifier mon jeu de données dans le répertoire.So Le format doit être de 12,12,1995.

Comment puis-je l'obtenir? P >

    Time   
0   1995    
1   1996    
2   1997    
3   1998    
4   1999    


1 commentaires

Avez-vous essayé quelque chose? La question est également un peu floue; Pourriez-vous clarifier: qu'entendez-vous par aléatoire , si c'était vraiment des nombres aléatoires ou qu'il suffit-il de «12.12.12.yyyy» comme dans votre exemple? Vous devez également spécifier DTYPES; de ce que Dtype est votre «temps» de votre colonne? Que devrait être la sortie? '12 .12..yyyy 'E.g. string moyen ... (ou voulez-vous réellement datetime?)


3 Réponses :


0
votes

Définir la fonction suivante pour générer une date au cours de l'année donnée, décalcuté par un nombre aléatoire de mois et de jours: xxx pré>

puis appliquez-le, écrasement temps em> colonne: p>

        time
0 1995-06-01
1 1996-04-28
2 1997-04-08
3 1998-10-20
4 1999-06-19


2 commentaires

Merci, c'était très utile, j'ai eu ce que je cherchais maintenant depuis que le format de l'heure a changé, comment puis-je lire cette nouvelle colonne de temps, Coz Python lit toujours l'ancien format et je ne peux pas tracer un graphique . Dois-je donner à mon Coulmn un nouveau nom ?? DEF ANNONCEDANDOMDAY (TEMPS): Retour PD.TO_DateTime (STR (TIME) + '-01-01') + PD.DateOffset (mois = np.random.randint (11), jours = np.random.randint (30)) df.time = df.time.apply (année d'année) climat DF ["temps '] = pd.to_datetime (climat [Time']) climat [" temps "] climatic_data.set_index ('Time')


Les noms de colonne doivent être autres que les noms des méthodes et de la fonction. Au moins un peu de caractère devrait être dans un cas différent (supérieur / inférieur). Notez également que temps seul est un terme large. Vous pouvez ajouter du préfixe ou du suffixe pour définir clairement ce que temps contient une colonne particulière (heure de quoi).



0
votes

Une autre option avec une compréhension de liste laidée:

df['Time'] = [(pd.Timestamp(year=i, month=np.random.randint(1,13), day=1)
              + pd.Timedelta(days = np.random.randint(30))).replace(year=i)
              for i in df['Time']]


0 commentaires

1
votes

Je pense que vous avez ajouté des mois et des jours séparément, il devrait y avoir un problème avec les derniers jours de mois, par exemple. Si les jours sont de 30 ans, le cas échéant pour février.

Donc, je suggère d'ajouter des jours seulement comme: xxx


0 commentaires