通过左联接SQL和Pandas合并数据帧

时间:2019-02-10 06:14:26

标签: python mysql sql pandas merge

我使用Python在MySQL数据库中制作了两个表。以下SQL代码用于对数据库中的两个表执行联接。如何通过编写等效的python代码来做到这一点?

MySQL代码:

SELECT A.num, B.co_name, A.rep_name
FROM A 
JOIN B 
ON A.num=B.no

所需的Python代码:

sql = "XXX"    
df_merged = pd.read_sql(sql, con=cnx)

2 个答案:

答案 0 :(得分:0)

您可以采用的一种方法是将每个元素一个接一个地插入到新的表/数据框中。

zip( *map(lambda x: pd.read_sql_query(SQL.format(x),connection).loc[0],  
                                      df.yourDataFrame))

这将生成一个键值对,SQL表作为键,pandas df作为值。您可以随意添加这些值(df或sql表。)

希望这有帮助:)

答案 1 :(得分:0)

我设法通过用适当的撇号将查询括起来来解决:

sql = '''SELECT A.num, B.co_name, A.rep_name 
FROM A 
LEFT JOIN B ON A.num=B.no ''' 
df_merged = pd.read_sql(sql, con=cnx)