Так что я загрузил некоторые данные из базы данных, которая имеет удобный столбец идентификаторов. Я сохранил максимальный ID для каждой таблицы, к которой я обращаюсь, к маленькому текстовому файлу, который я прочитал в памяти (max_ids dataframe).pandas read sql query improvement
Я пытался создать запрос, где бы я сказал, дайте мне все данные, где Idcol> max_id для этой таблицы. Я получал ошибки, которые были изменены, поэтому я не мог использовать их в параметре. Приведенный ниже код оказался работоспособным, но это был просто процесс угадывания и проверки. Я превратил его в int, а затем строку, которая в основном извлекала фактическое значение из фрейма данных.
Является ли это правильным способом выполнения того, что я пытаюсь сделать, прежде чем реплицировать это примерно на 32 разных таблицы? Я хочу всегда иметь возможность захватывать только последние данные из этих таблиц, которые я тогда делаю в пандах, и, в конечном счете, консолидировать и экспортировать в другую базу данных.
df= pd.read_sql_query('SELECT * FROM table WHERE Idcol > %s;', engine, params={'max_id', str(int(max_ids['table_max']))})
Могу ли я также сделать название таблицы более динамичным? Мне нужно пройти список таблиц. База данных - это MS SQL, и я использую pymssql и sqlalchemy.
Вот пример того, где я побежал max_ids [ 'table_max']:
Out[11]:
0 1900564174
Name: max_id, dtype: int64
Можете ли вы опубликовать образец вашего 'max_ids' DF? или просто вывести вывод 'print (max_ids.head())' – MaxU
уверен, что я сделал редактирование – trench
, ваш 'max_ids' - не похож на кадр данных pandas?!? можете ли вы опубликовать вывод 'print (max_ids.head())'? – MaxU