Począwszy od pandy 0.14 (wydanej pod koniec maja 2014), obsługiwany jest postgresql. sql
moduł używa teraz sqlalchemy
do obsługi różnych smaków baz danych. Możesz przekazać silnik sqlalchemy dla bazy danych postgresql (patrz dokumentacja). Np.:
from sqlalchemy import create_engine
engine = create_engine('postgresql://username:[email protected]:5432/mydatabase')
df.to_sql('table_name', engine)
Masz rację, że w pandach do wersji 0.13.1 postgresql nie był obsługiwany. Jeśli musisz użyć starszej wersji pand, oto poprawiona wersja pandas.io.sql
:https://gist.github.com/jorisvandenbossche/10841234.
Napisałem to jakiś czas temu, więc nie mogę w pełni zagwarantować, że zawsze działa, ale podstawa powinna tam być). Jeśli umieścisz ten plik w swoim katalogu roboczym i zaimportujesz go, powinieneś być w stanie to zrobić (gdzie con
to połączenie postgresql):
import sql # the patched version (file is named sql.py)
sql.write_frame(df, 'table_name', con, flavor='postgresql')