Чтение SQL таблицы через Pandas

96
08 сентября 2021, 10:10

Есть SQL таблица, которая читается через Pandas.

Возможно ли изменить формат вывода даты и времени на '2019-10-10 10:00:00' в одном столбце datetime и сделать данный столбец индексом?

     date     time    open    high    low     close
0  20191010  100000  131030  131450  131030  131130
1  20191010  103000  131120  131120  130560  130770
2  20191010  110000  130780  131250  130630  131180
3  20191010  113000  131190  131230  130900  130920
4  20191010  120000  130920  131110  130740  130790
5  20191010  123000  130790  131170  130700  131100
connection = pymysql.connect(host='localhost', user='root', passwd='******', db='quotes')
stocks = pd.io.sql.read_sql("SELECT * FROM 30min", connection)
connection.close()
Answer 1

Решение при помощи Pandas:

Исходный DataFrame:

In [5]: df
Out[5]:
       date    time    open    high     low   close
0  20191010  100000  131030  131450  131030  131130
1  20191010  103000  131120  131120  130560  130770
2  20191010  110000  130780  131250  130630  131180
3  20191010  113000  131190  131230  130900  130920
4  20191010  120000  130920  131110  130740  130790
5  20191010  123000  130790  131170  130700  131100

Решение:

In [6]: df = df.set_index(pd.to_datetime(df.pop("date").astype(str) 
                                         + " " 
                                         + df.pop("time").astype(str)))

Результат:

In [7]: df
Out[7]:
                       open    high     low   close
2019-10-10 10:00:00  131030  131450  131030  131130
2019-10-10 10:30:00  131120  131120  130560  130770
2019-10-10 11:00:00  130780  131250  130630  131180
2019-10-10 11:30:00  131190  131230  130900  130920
2019-10-10 12:00:00  130920  131110  130740  130790
2019-10-10 12:30:00  130790  131170  130700  131100

такое же преобразование можно сделать и на стороне MySQL DB:

select
    str_to_date(concat(cast(date as char(8)), cast(time as char(6))), '%Y%m%d%h%i%s') as dt,
    open,
    high,
    low,
    close
from 30min;
READ ALSO
Many-to-One в TypeOrm

Many-to-One в TypeOrm

Всем доброго времени сутокНа проекте используется TypeOrm

210
Vue+PHP+render, возможно ли?

Vue+PHP+render, возможно ли?

Всех приветствую! Есть сайт, написанный на PHPУ него есть страница каталога, где настроено все SEO

191
Docker MySQL не работает

Docker MySQL не работает

Только начала пользоваться DockerНе могу понять почему не работает MySQL

268