Có phương thức DataFrame.to_sql, nhưng nó chỉ hoạt động cho cơ sở dữ liệu mysql, sqlite và oracle. Tôi không thể vượt qua để kết nối postgres phương pháp này hoặc động cơ sqlalchemy.Làm thế nào để viết DataFrame để bảng postgres?
Trả lời
Bắt đầu từ gấu trúc 0,14 (được phát hành cuối tháng 5 năm 2014), postgresql được hỗ trợ. Mô-đun sql
hiện sử dụng sqlalchemy
để hỗ trợ các hương vị cơ sở dữ liệu khác nhau. Bạn có thể chuyển một công cụ sqlalchemy cho một cơ sở dữ liệu postgresql (xem docs). Ví dụ .:
from sqlalchemy import create_engine
engine = create_engine('postgresql://scott:[email protected]:5432/mydatabase')
df.to_sql('table_name', engine)
Bạn là chính xác rằng trong gấu trúc lên đến phiên bản 0.13.1 postgresql không được hỗ trợ. Nếu bạn cần sử dụng phiên bản cũ hơn của gấu trúc, đây là phiên bản được vá của pandas.io.sql
: https://gist.github.com/jorisvandenbossche/10841234.
Tôi đã viết điều này một thời gian trước đây, vì vậy không thể hoàn toàn đảm bảo rằng nó luôn hoạt động, nhưng cơ sở nên ở đó). Nếu bạn đặt file trong thư mục làm việc của bạn và nhập nó, sau đó bạn sẽ có thể làm (nơi con
là một kết nối postgresql):
import sql # the patched version (file is named sql.py)
sql.write_frame(df, 'table_name', con, flavor='postgresql')
nhanh hơn tùy chọn:
mã sau sẽ sao chép của bạn Pandas DF để postgres DB nhanh hơn nhiều so với df.to_sql phương pháp và bạn sẽ không cần bất kỳ tập tin csv trung gian để lưu trữ các df. Tạo một công cụ dựa trên thông số kỹ thuật DB của bạn. Tạo một bảng trong DB postgres của bạn có số cột bằng nhau như Dataframe (df). Dữ liệu trong DF sẽ nhận được được chèn vào bảng bưu điện của bạn.
from sqlalchemy import create_engine
import psycopg2
import io
engine=create_engine('postgresql+psycopg2://username:[email protected]:port/database')
conn=engine.raw_connection()
cur = conn.cursor()
output = io.StringIO()
df.to_csv(output, sep='\t', header=False, index=False)
output.seek(0)
contents = output.getvalue()
cur.copy_from(output, ‘table_name’, null="") #null values become ''
conn.commit()
- 1. Làm thế nào để viết dataframe (thu được từ bảng hive) vào hadoop SequenceFile và RCFile?
- 2. Làm thế nào để viết một bảng chữ trong Oracle?
- 3. làm thế nào để sử dụng datatype hình học để postgres bảng?
- 4. thế nào để chạy Postgres địa phương
- 5. Làm thế nào để tổng hợp và có nghĩa là một DataFrame để tạo một DataFrame
- 6. Làm thế nào để chuyển một cột trong Pandas DataFrame
- 7. Làm thế nào để tôi nhận được các bảng trong postgres bằng psycopg2?
- 8. Làm thế nào để một hàm Postgres được lưu trữ trả về một bảng
- 9. Làm thế nào để làm tan chảy Spark DataFrame?
- 10. Làm thế nào để chuyển đổi bảng tính OpenDocument thành một DataFrame gấu trúc?
- 11. Viết Dataframe vào Phoenix
- 12. Làm thế nào để "tên" một truy vấn trong postgres
- 13. làm thế nào để viết trở Haskell
- 14. Làm thế nào để viết mẫu `is_complete`?
- 15. Làm thế nào để viết __getitem__ sạch?
- 16. Làm thế nào để xoay gấu trúc dataframe
- 17. Làm thế nào để xóa một cột trong R dataframe
- 18. Làm thế nào để chọn cột cuối cùng của dataframe
- 19. Làm thế nào để áp dụng quantile trên dataframe
- 20. Làm thế nào để làm việc với các ràng buộc loại trừ postgres trong alembic
- 21. Làm thế nào để lọc một tia lửa dataframe chống dataframe khác
- 22. Postgres pg_toast trong autovacuum - bảng nào?
- 23. Rails seed: Làm thế nào để cắt bớt bảng DB?
- 24. Làm cách nào để trao đổi hai cột DataFrame?
- 25. Làm thế nào để hack bảng ảo?
- 26. Làm thế nào để malloc char ** bảng?
- 27. Làm thế nào để viết THAM GIA QUERY cho 4 bảng trong điều kiện dưới đây
- 28. Làm thế nào để có được các chú gấu trúc Python DataFrame từ chuỗi được viết bởi print()?
- 29. Làm thế nào để viết JPQL SELECT với id nhúng?
- 30. Làm thế nào để lưu trữ công thức, thay vì giá trị, trong gấu trúc DataFrame
Biến số này có thành 0,14 không? – Quant
Có, và cũng 0,15 đã được phát hành (ứng cử viên phát hành). Tôi sẽ cập nhật câu trả lời, cảm ơn vì đã hỏi. – joris
Bài đăng này giải quyết được vấn đề cho tôi: http://stackoverflow.com/questions/24189150/pandas-writing-dataframe-to-other-postgresql-schema – srodriguex