python - 如何连接不同数据库(mysql和postgres)的两个数据框并使用python将输出作为csv文件?
问题描述
如问题中所述,我的任务是在本地连接不同数据库(MySQL 和 PostgreSQL)的两个数据框,并且需要在 CSV 文件中获取输出(数据集)。让我告诉你到目前为止我在下面做了什么:
- 使用创建连接(con)
mysql.connector.connect
- 同时对于 postgres
psycopg2
单独使用。 df1 = pd.read_sql(sql='SELECT * FROM mydatabase.Empl_det', con=conn).to_csv(r'C:\Users\Aaru\Documents\Empl_det1.csv', index=False)
在这样做之前,我已经在 MySQL 和 postgres 中创建了一个表......结果我得到了 csv 形式的输出。- 分别与 PostgreSQL 类似
df2 = pd.read_sql(sql='SELECT * FROM postgres.public.salary_details', con=conn).to_csv(r'C:\Users\Aaru\Documents\Emp_sal.csv', index=False)
。 - 现在问题是我需要基于公共列连接这两个数据框并在 CSV 文件中获得输出。
有时我曾经获得You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax
过这个 MySQL 版本,并且我也浏览了文档......但我没有得到关于我的问题的正确参考。
我正在使用 MySQL 8.0.21 版本和 PostgreSQL 10。任何人都可以帮我带出加入吗?希望上面说的对答案有所帮助。非常感谢提前!!
还有一个问题:是否可以这样做然后合并?
import pandas as pd
import mysql.connector
import psycopg2
conn = mysql.connector.connect(host="localhost",
user="user",
password="mypassword",
database="mydatabase"
)
mycursor_sql = conn.cursor()
con = psycopg2.connect(
database="postgres", user="postgres", password="mypassword", host="localhost", port=5432)
cursor = con.cursor()
df1 = pd.read_sql(sql='SELECT * FROM mydatabase.Empl_det', con=conn).to_csv(
r'C:\Users\Aaru\Documents\Empl_det1.csv', index=False)
df2 = pd.read_sql(sql='SELECT * FROM postgres.public.salary_details', con=conn).to_csv(
r'C:\Users\Aaru\Documents\Emp_sal1.csv', index=False)
merged_df = df1.merge(df2, on='id')
merged_df.to_csv('join.csv')
print("Success")
conn.commit()
conn.close()
还有其他方法吗?... 需要尽快回复。谢谢
解决方案
干得好:
merged_df = df1.merge(df2, on='id')
merged_df.to_csv('filename.csv')
推荐阅读
- c++ - 为什么链表为空时不插入数据?
- ms-access - 在Access 2019中开发,在客户笔记本上用Access365反编译:错误“无法执行保存操作”
- python - 如何在字典上应用排序算法?
- python - 命名实体识别任务的预测结果错误
- flutter - 在颤动中对齐 DropdownButton 始终位于按钮的正下方
- android - 我需要通过单个设备中的 JSON 数据将数据从 android 本机应用程序传输到混合 android 应用程序
- google-chrome - 根据其他单元格值自动隐藏行
- pointers - 通用访问类型 Ada
- nsubstitute - NSubstitute 是模拟库还是存根库?
- notion-api - Notion API [Beta]:将用户添加到工作区并更改其权限