xheirt
@xheirt
Java, Python

Работа с Pandas. Почему в Excel не передаются данные из db?

В бд есть несколько таблиц, в каждой из них данные, при переносе данных:
import pandas as pd

conn = sqlite3.connect("data.db")
c = conn.cursor()

df = pd.read_sql('select * from users, orders, items, commands, cats', conn)
df.to_excel(r'database.xlsx', index = False)

В excel переносятся только заголовки строк
62d8841828975423584982.png
как это исправить, и можно ли будет мне подвинуть некоторые столбцы, чтобы они небыли все в одну строку, как на скриншоте или переместить их на новые листы?
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
@borisalekseev
extra beginner junior python backend
Если у Вас разные таблицы, запишите каждую таблицу в отдельный файл (что совсем просто делается) или в один файл в разные листы. Для этого пригодится pandas.ExcelWriter.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@o5a
Т.к. не задали никаких условий, то запрос
select * from users, orders, items, commands, cats
просто формирует кросс-соединение указанных таблиц (каждая строка каждой таблицы перемножаются друг на друга). В колонках Excel и записываются все поля всех этих таблиц.

"только заголовки" потому что данных в таблицах нет (или не записали еще, или забыли закомитить).

Сомневаюсь, что хотели делать кросс-соединение, так что надо указать параметры объединения таблиц, или через where .. = .. или через join
Например так (зависит от ваших реальных связей между таблицами):
select * from users u join orders o on u.user_id = o.user_id
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы