2016-05-05 2 views
3
import datetime as datetime 
datetime.strptime('2013-01-01 09:10:12', '%Y-%m-%d %H:%M:%S') 

производитDatetime strptime в Python pandas: что не так?

AttributeError Traceback (most recent call last) in() 1 import datetime as datetime ----> 2 datetime.strptime('2013-01-01 09:10:12', '%Y-%m-%d %H:%M:%S') 3 z = minidf['Dates'] 4 z

AttributeError: 'module' object has no attribute 'strptime'

моя цель состоит в том, чтобы преобразовать столбец панды dataframe, формат которого еще объект данных

import datetime as datetime 
#datetime.strptime('2013-01-01 09:10:12', '%Y-%m-%d %H:%M:%S') 
z = minidf['Dates'] 

0  2015-05-13 23:53:00 
1  2015-05-13 23:53:00 
2  2015-05-13 23:33:00 
3  2015-05-13 23:30:00 
4  2015-05-13 23:30:00 
5  2015-05-13 23:30:00 
6  2015-05-13 23:30:00 
7  2015-05-13 23:30:00 
8  2015-05-13 23:00:00 
9  2015-05-13 23:00:00 
10 2015-05-13 22:58:00 
Name: Dates, dtype: object 

бонус вопрос, я получил эту колонку, используя pd.read_csv функцию из более крупный файл с большим количеством столбцов. Можно ли передать параметры таким образом, что pd.read_csv непосредственно преобразует его в формат dtype: datetime64[ns]

+0

использование 'datetime.datetime.strptime ('2013-01-01 9:10:12',«% Y-% m-% d% H:% M:% S ') 'для обозначения класса' datetime' в модуле 'datetime' – ritesht93

ответ

4

Я думаю, что вы можете использовать для преобразования to_datetime:

print pd.to_datetime('2013-01-01 09:10:12', format='%Y-%m-%d %H:%M:%S') 
2013-01-01 09:10:12 

print pd.to_datetime('2013-01-01 09:10:12') 
2013-01-01 09:10:12 

Если вам нужно преобразовать в функции read_csv, добавьте параметр parse_dates:

df = pd.read_csv('filename', parse_dates=['Dates']) 

Образец:

import pandas as pd 
import io 

temp=u"""Dates 
2015-05-13 23:53:00 
2015-05-13 23:53:00 
2015-05-13 23:33:00 
2015-05-13 23:30:00 
2015-05-13 23:30:00 
2015-05-13 23:30:00 
2015-05-13 23:30:00 
2015-05-13 23:30:00 
2015-05-13 23:00:00 
2015-05-13 23:00:00 
2015-05-13 22:58:00 
""" 
#after testing replace io.StringIO(temp) to filename 
df = pd.read_csv(io.StringIO(temp), parse_dates=['Dates']) 
print df 
       Dates 
0 2015-05-13 23:53:00 
1 2015-05-13 23:53:00 
2 2015-05-13 23:33:00 
3 2015-05-13 23:30:00 
4 2015-05-13 23:30:00 
5 2015-05-13 23:30:00 
6 2015-05-13 23:30:00 
7 2015-05-13 23:30:00 
8 2015-05-13 23:00:00 
9 2015-05-13 23:00:00 
10 2015-05-13 22:58:00 

print df.dtypes 
Dates datetime64[ns] 
dtype: object 

Другое решение с to_datetime:

print pd.to_datetime(df['Dates']) 

Пример:

print df 
        Dates 
0 2015-05-13 23:53:00 
1 2015-05-13 23:53:00 
2 2015-05-13 23:33:00 
3 2015-05-13 23:30:00 
4 2015-05-13 23:30:00 
5 2015-05-13 23:30:00 
6 2015-05-13 23:30:00 
7 2015-05-13 23:30:00 
8 2015-05-13 23:00:00 
9 2015-05-13 23:00:00 
10 2015-05-13 22:58:00 

print df.dtypes 
Dates object 

df['Dates'] = pd.to_datetime(df['Dates']) 
print df 
       Dates 
0 2015-05-13 23:53:00 
1 2015-05-13 23:53:00 
2 2015-05-13 23:33:00 
3 2015-05-13 23:30:00 
4 2015-05-13 23:30:00 
5 2015-05-13 23:30:00 
6 2015-05-13 23:30:00 
7 2015-05-13 23:30:00 
8 2015-05-13 23:00:00 
9 2015-05-13 23:00:00 
10 2015-05-13 22:58:00 

print df.dtypes 
Dates datetime64[ns] 
dtype: object 
5

AttributeError: 'module' object has no attribute 'strptime'

strptime не доступен на datetime но datetime.datetime

>>> from datetime import datetime 
>>> datetime.strptime('2013-01-01 09:10:12', '%Y-%m-%d %H:%M:%S') 
datetime.datetime(2013, 1, 1, 9, 10, 12) 
0

я mporting только модуль

>>> import datetime 
>>> datetime.datetime.strptime('2013-01-01 09:10:12', '%Y-%m-%d %H:%M:%S') 
datetime.datetime(2013, 1, 1, 9, 10, 12) 

импортирует класс из модуля в текущий контекст:

>>> from datetime import datetime 
>>> datetime.strptime('2013-01-01 09:10:12', '%Y-%m-%d %H:%M:%S') 
datetime.datetime(2013, 1, 1, 9, 10, 12) 
>>> 

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

  • Нет связанных вопросов^_^