Установите для индекса данных панды panda имя столбца, если имя столбца не является уникальным - PullRequest
0 голосов
/ 07 октября 2019

У меня есть две таблицы биржевых тикеров.

Я создаю SQL-запрос для объединения двух таблиц.

query_combined = session\
.query(Table1, Table2)\
.join(Table2, Table1.ticker==Table2.ticker)

Затем я передаю SQL-код Pandas для загрузки во фрейм:

df_combined = pandas\
    .read_sql(query_combined.statement, 
              query_combined.session.bind, 
              index_col='ticker')

Однако, поскольку в соединяемых таблицах есть два столбца "тикеров", задаем index_col ='ticker' приводит к кортежу для столбца индекса '(ticker, ticker)'. Я просто хочу указать один из столбцов «тикера» в качестве индекса кадра данных, но не знаю, как.

Я новичок в пандах и уверен, что это очень просто, но в мой часиз Google, я не нашел ответ. Заранее большое спасибо за указание в правильном направлении.

1 Ответ

0 голосов
/ 07 октября 2019

Рассмотрим with_labels, чтобы квалифицировать неоднозначные столбцы с подчеркиванием <table>_<column>:

df_combined = (pandas
                 .read_sql(query_combined.with_labels().statement, 
                           query_combined.session.bind, 
                           index_col='Table1_ticker')
              )

Чтобы сократить имя таблицы, псевдоним таблиц перед объединением:

t1 = aliased(t1, Table1)
t2 = aliased(t2, Table2)

query_combined = (session
                    .query(t1, t2)
                    .join(t2, t1.ticker==t2.ticker)
                  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...