describe()
sur la colonne datetime ne fonctionne pas de la même manière comme il le fait sur des colonnes entières ou colonnes float
Ainsi, nous pouvons créer notre méthode personnalisée pour faire la même:
import pandas as pd
from datetime import timedelta
from datetime import datetime
base = datetime.now()
date_list = [base - timedelta(days=x) for x in range(0, 20)]
df = pd.DataFrame.from_dict({'Date': date_list})
df
Date
0 2017-08-17 21:32:54.044948
1 2017-08-16 21:32:54.044948
2 2017-08-15 21:32:54.044948
3 2017-08-14 21:32:54.044948
def describe_datetime(dataframe, column, percentiles=[i/10 for i in range(1,11)]):
new_date = dataframe[column].dt.strftime('%Y-%m-%d').sort_values().values
length = len(new_date)
for percentile in percentiles:
print(percentile, ':', new_date[int(percentile * length)-1])
describe_datetime(df, 'Date')
sortie:
0.1 : 2017-07-30
0.2 : 2017-08-01
0.3 : 2017-08-03
0.4 : 2017-08-05
0.5 : 2017-08-07
0.6 : 2017-08-09
0.7 : 2017-08-11
0.8 : 2017-08-13
0.9 : 2017-08-15
1.0 : 2017-08-17
cette approche ne fonctionne pas quand je l'ai essayé. J'ai aussi essayé de faire varier le percentile et les valeurs retournées sont les mêmes. –
@ T-Jay J'ai créé une méthode personnalisée pour faire ce que vous cherchiez. –