Dokumentasi untuk Pandas memiliki banyak contoh praktik terbaik untuk bekerja dengan data yang disimpan dalam berbagai format.
Namun, saya tidak dapat menemukan contoh bagus untuk bekerja dengan database seperti MySQL misalnya.
Adakah yang bisa mengarahkan saya ke tautan atau memberikan beberapa cuplikan kode tentang cara mengonversi hasil kueri menggunakan mysql-python ke bingkai data di Pandas secara efisien?
Jawaban:
Seperti yang dikatakan Wes, read_sql io / sql akan melakukannya, setelah Anda mendapatkan koneksi database menggunakan pustaka yang kompatibel dengan DBI. Kita dapat melihat dua contoh singkat menggunakan
MySQLdb
dancx_Oracle
perpustakaan untuk terhubung ke Oracle dan MySQL dan menanyakan kamus datanya. Ini contohnya untukcx_Oracle
:Dan berikut adalah contoh yang setara untuk
MySQLdb
:sumber
Untuk pembaca baru dari pertanyaan ini: panda memiliki peringatan berikut di dokumen mereka untuk versi 14.0 :
Dan:
Hal ini membuat banyak jawaban di sini menjadi kuno. Anda harus menggunakan
sqlalchemy
:sumber
engine.execute("select * FROM mytable")
dengan waktu yang diperlukan untuk mengeksekusipd.read_sql_query('SELECT * FROM mytable', engine)
Sebagai catatan, berikut adalah contoh penggunaan database sqlite:
sumber
index_col='timestamp'
dalamframe_query
.Saya lebih suka membuat kueri dengan SQLAlchemy , dan kemudian membuat DataFrame darinya. SQLAlchemy membuatnya lebih mudah untuk menggabungkan kondisi SQL secara Python jika Anda berniat untuk mencampur dan mencocokkan banyak hal berulang kali.
sumber
dialect+driver://user:pwd@host:port/db
Contoh MySQL:
sumber
frame_query
sekarang tidak digunakan lagi. Sekarang gunakanpd.read_sql(query, db)
saja.Sintaks yang sama berfungsi untuk server Ms SQL yang menggunakan podbc juga.
sumber
Dan ini adalah cara Anda terhubung ke PostgreSQL menggunakan driver psycopg2 (instal dengan "apt-get install python-psycopg2" jika Anda menggunakan OS turunan Debian Linux).
sumber
Untuk Sybase, pekerjaan berikut (dengan http://python-sybase.sourceforge.net )
sumber
pandas.io.sql.frame_query
sudah ditinggalkan. Gunakanpandas.read_sql
sebagai gantinya.sumber
impor modul
Menghubung
Itu berfungsi dengan baik dan menggunakan pandas.io.sql frame_works (dengan peringatan penghentian). Database yang digunakan adalah database sampel dari tutorial mysql.
sumber
Ini seharusnya bekerja dengan baik.
sumber
Ini membantu saya untuk menghubungkan ke AWS MYSQL (RDS) dari fungsi lambda berbasis python 3.x. dan memuat ke DataFrame pandas
sumber
Untuk pengguna Postgres
sumber