2016-08-02 1 views
0

Это мои данные:Панды - ValueError на даты и времени в формате несоответствием

date = df['Date'] 
print (date.head()) 

0 2015-01-02 
1 2015-01-02 
2 2015-01-02 
3 2015-01-02 
4 2015-01-02 
Name: Date, dtype: datetime64[ns] 

мой код:

def date_to_days(date): 
    return date2num(datetime.datetime.strptime(date, '%Y-%m-%d')) 

Почему я получаю эту ошибку?

+0

Этот вопрос, похоже, касается библиотеки панды. Пожалуйста, включите это в свой вопрос. Какими данными является дата? Что происходит, когда вы печатаете его? Для функции strptime требуется строка. Он «немой», так как он не ищет дату в строке, поэтому удалите все ненужные данные из строки, которую вы передаете в datetime. – Munchhausen

+0

Вы пытаетесь извлечь дни из объекта 'datetime'? –

ответ

0

Он отлично работает для меня без каких-либо ошибок.

In [74]: from matplotlib.dates import date2num 

In [75]: df['Number of days'] = df['Date'].apply(lambda x: date2num(datetime.datetime.strptime(x, '%Y-%m-%d'))) 

In [76]: df 
Out[76]: 
     Date Number of days 
0 2015-01-02  735600.0 
1 2015-01-02  735600.0 
2 2015-01-02  735600.0 
3 2015-01-02  735600.0 
4 2015-01-02  735600.0 

В общем, плохой практикой является назначение переменных объекту серии pandas. Это может испортить многое.

In [1]: def date_to_days(date): 
    ...:  return date2num(datetime.datetime.strptime(date, '%Y-%m-%d')) 

In [2]: df['Number of days'] = df['Date'].apply(date_to_days) 

In [3]: df 
Out[3]: 
     Date Number of days 
0 2015-01-02  735600.0 
1 2015-01-02  735600.0 
2 2015-01-02  735600.0 
3 2015-01-02  735600.0 
4 2015-01-02  735600.0 
+0

Я думаю, это потому, что его представление дат на самом деле скрывает время, которое также присутствует ... – bernie

+0

Да. Думаю, это может быть так. –

Смежные вопросы