Привет, у меня есть pandas dataframe
со столбцом 'amps', который float array
([1.33,2.67,39.64,4.76....])
другой столбец с именем '("John","Smith"..etc)
, и другой' age ', такой как (22,34,56..etc)
.Name и age не являютсямассив. Я хочу сохранить фрейм данных в виде таблицы в postgres
.
. Сейчас я не могу сделать это из-за следующей ошибки
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) column "amplitudes" is of type double precision but expression is of type numeric[]
Я попытался упомянуть dtypes, как указано здесь .
Ниже была моя попытка:
from sqlalchemy import create_engine
engine = create_engine('postgresql://scott:tiger@localhost:5432/mydatabase')
df.to_sql('table_name', engine,dtype ={amps':postgresql.ARRAY(sqlalchemy.types.REAL),
'name':sqlalchemy.types.string,'age' :sqlalchemy.types.Integer() )
Но вышеупомянутая ошибка все еще возвращается. Как я могу вставить фрейм данных в psql. Какие dtypes я должен дать здесь. Документация меня очень смущает
Когда использовать postgresql.ARRAY
, а когда sqlalchemy.types
. В чем разница между Real,Decimal,Float
и т. Д., Когда использовать какой. Был бы рад, если бы вы могли объяснить мне это вкратце.
Спасибо