Добавить df в таблицу SQLite по индексу
Задача следующая: Загружаю в pandas df свечи за 1 минуту с Binance и создаю таблицу через df.to_sql, получаю
t o1m c1m
1670569080000 0.13150000 0.13150000
1670569140000 0.13150000 0.13150000
1670569200000 0.13150000 0.13150000
1670569260000 0.13150000 0.13180000
1670569320000 0.13180000 0.13190000
1670569380000 0.13190000 0.13190000
1670569440000 0.13190000 0.13200000
1670569500000 0.13210000 0.13220000
Далее загружаю свечи за 5 минут
t o5m c5m
1670569200000 0.13150000 0.13200000
1670569500000 0.13210000 0.13220000
Хочу добавить df в таблицу SQL, объединяя по столбцу "t":
t o1m c1m o5m c5m
1670569080000 0.13150000 0.13150000
1670569140000 0.13150000 0.13150000
1670569200000 0.13150000 0.13150000 0.13150000 0.13200000
1670569260000 0.13150000 0.13180000
1670569320000 0.13180000 0.13190000
1670569380000 0.13190000 0.13190000
1670569440000 0.13190000 0.13200000
1670569500000 0.13210000 0.13220000 0.13210000 0.13220000
Значений будет тысячи, еще и временный промежутки добавятся: за 30 минут, за час, за день. Возможно ли это, и как это сделать? Спасибо
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Перед экспериментами с данными сделайте резервную копию во избежание их повреждения.
Что предлагаю.
- Создать таблицу с доп. полем "период", в который помещать признак периода агрегации данных - 1 минута, 5 минут, 30 минут и т.д. Например:
CREATE TABLE IF NOT EXISTS candles (
id INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL,
t NUMERIC NOT NULL,
o1m DOUBLE,
c1m DOUBLE,
period STRING (2)
);
Можно обойтись без SQL запроса, просто записав первый фрейм с нужным набором столбцов в режиме if_exists='replace'.
- В каждый фрейм перед записью (
df.to_sql) добавлять столбец с периодом, например:
df['period'] = '1m'
- После чего каждый фрейм записывать в базу с использованием
df.to_sqlс указанием атрибутаif_exists='append', т.е. дополнять существующую таблицу. - Далее простейшими запросами вида (например, с помощью
pandas.read_sql):
SELECT * from candles where period="5m"
извлекать данные нужной периодичности.
