2 votes

application de la fonction au cadre de données ; timestamp.dt

En fin de compte, je veux calculer le nombre de jours jusqu'au dernier jour du mois à partir de chaque date dans la base de données. df['start'] et de remplir le 'count' avec le résultat.

Comme première étape vers cet objectif, l calendar.monthrange prend les arguments (année, mois) et renvoie un tuple (premier jour de la semaine, nombre de jours).

Il semble y avoir une erreur générale concernant l'application de fonctions à des cadres de données ou à des objets de série. J'aimerais comprendre pourquoi cela ne fonctionne pas.

import numpy as np
import pandas as pd
import calendar

def last_day(row):
    return calendar.monthrange(row['start'].dt.year, row['start'].dt.month)

Cette ligne soulève une AttributeError : "Timestamp object has no attribute 'dt'" :

df['count'] = df.apply(last_day, axis=1)

voici à quoi ressemble mon cadre de données :

       start  count
0 2016-02-15    NaN
1 2016-02-20    NaN
2 2016-04-23    NaN

df.dtypes

start    datetime64[ns]
count           float64
dtype: object

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X