Я получаю большой объем данных из PostgreSQL с помощью:
it = pandas.read_sql_table(table, DB_CONN, chunksize=1000)
Но Pandas использует адаптер psycopg2 для PostgreSQL, который возвращает memoryview
вместо байтов по историческим причинам . Насколько мне известно, нет никакой возможности заставить psycopg2 вернуть bytes
вместо memoryview
, поэтому я застрял с этим.
Теперь библиотека, которой я передаю фрейм данных Pandas, написана на C и не принимает memoryview
и может обрабатывать только bytes
, поэтому мне нужен способ для преобразования всех столбцов memoryview
до bytes
.
Я пытался сделать это:
dataframe[column_name].astype(bytes)
но это не работает для memoryview
-> bytes
, по-видимому:
*** ValueError: setting an array element with a sequence
Я тоже попробовал что-то вроде этого:
dataframe.select_dtypes(include=[memoryview]).apply(bytes)
Но столбцы не возвращаются.
Так кто-нибудь знает, как я могу иметь эффективный способ преобразования всех memoryview
столбцов произвольного кадра данных панд в bytes
?