基于Dataframe值添加sql过滤器

wljmcqd8  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(290)

我想在sql查询中添加一个只提取 customer_id's 以及相应的 city 都在房间里 customer_id_df 我下面的代码当前提取所有 customer_id's 缺少上述条件。
客户id

customer_id
4244
2424
5353
5273
5353
6342

主表

customer_id  city
4244         Houston 
2424         Los Angeles
5353         Detroit 
5273         New York
5353         Detroit
6342         Austin 
1123         New York
3113         San Francisco 
9923         Boston

输出功率因数

customer_id  city
4244         Houston 
2424         Los Angeles
5353         Detroit 
5273         New York
5353         Detroit
6342         Austin

代码:

import pandas as pd 
import jaydebeapi

customer_id_df = pd.read_csv('<file_path>')

conn = jaydebeapi.connect("<JDBC connection details>")
curs = conn.cursor()
curs.execute("select customer_id,city from main_table ") 
columns = [desc[0] for desc in curs.description]       # getting column headers
output_df = pd.DataFrame(curs.fetchall(), columns = columns)
kzmpq1sx

kzmpq1sx1#

为了获得每个值(具有重复项),并且仅将“customer\u id”上的两个表作为键连接在一起(相当于使用sql进行内部连接):

new_df = pd.merge(output_df, customer_id_df,how = 'inner' , on=['customer_id'])

为了只获得不同的值(不重复(相当于使用sql选择不同的值):

new_df.drop_duplicates(subset ="customer_id", 
                 keep = "first", inplace = True)

就是这样。如果你需要进一步的帮助,请告诉我!

相关问题