2012-07-05 3 views
1

Я запрашиваю базовую базу данных PostgreSQL, используя Pandas 0.8. Pandas правильно возвращает DataFrame, но базовый столбец timestamp в моей базе данных возвращается в качестве общего типа «объект» в Pandas. Поскольку мне в конечном итоге хотелось бы выполнить сезонные нормализации моих данных, и мне любопытно, как преобразовать этот общий столбец «объект» в то, что подходит для анализа.Преобразование объекта в DateRange

Вот мой текущий код для извлечения данных:

# get timestamp with time zone Pandas example 
import pandas.io.sql as psql 
import psycopg2 

# define query 
QRY = """ 
    select 
     i i, 
     i * random() f, 
     case when random() > 0.5 
     then 
      true 
     else 
      false 
     end b, 
     (current_date - (i*random())::int)::timestamp with time zone tsz 
    from 
     generate_series(1,1000) as s(i) 
    order by 
     4 
    ; 
""" 
CONN_STRING = "host='localhost' port=5432 dbname='postgres' user='postgres'" 

# connect to db 
conn = psycopg2.connect(CONN_STRING) 

# get some data set index on relid column 
df = psql.frame_query(QRY, con=conn) 

print "Row count retrieved: %i" % (len(df),) 

Результат в Python:

<class 'pandas.core.frame.DataFrame'> 
Int64Index: 1000 entries, 0 to 999 
Data columns: 
i  1000 non-null values 
f  1000 non-null values 
b  1000 non-null values 
tsz 1000 non-null values 
dtypes: bool(1), float64(1), int64(1), object(1) 

Интересно отметить, что первый столбец, "я", является цв Integer в PG , Я не уверен, почему Pandas считает, что это столбец типа «bool». Моя реальная проблема, хотя это столбец «объект», который, я думаю, должен быть какого-то типа метки времени.

+0

Я немного смущен тем, что вы здесь делаете. Разве истинная/ложная часть QRY не объясняет характер bool для вашего примера? Возможно, нам нужно увидеть схему БД. –

ответ

0

Указанные типы указаны в алфавитном порядке. Столбец tsz, вероятно, содержит datetime.datetime объекты Python (что обычно возвращается драйверами базы данных для столбцов timestamp), вы посмотрели?

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