使用Python Pandas库根据城市列表获取对应站点的技术问询
解决方案
方法1:SQL层面直接过滤(推荐)
通过在SQL查询中使用IN语句筛选目标城市,能减少数据传输量,提升处理效率:
# 定义需要查询的目标城市列表 target_cities = ["北京", "上海", "广州"] # 构造参数化SQL语句,避免SQL注入问题 sql_query = "SELECT STATION, CITY FROM REGION WHERE CITY IN (%s)" # 读取筛选后的数据 df = pd.read_sql(sql_query, conn, params=(target_cities,)) print(df)
方法2:全量读取后用Pandas筛选
若需先加载全量数据,可使用Pandas的isin()方法完成筛选:
# 读取全量数据 df = pd.DataFrame(pd.read_sql('SELECT * FROM REGION', conn)) # 目标城市列表 target_cities = ["北京", "上海", "广州"] # 筛选出目标城市对应的站点信息 filtered_df = df[df['CITY'].isin(target_cities)][['STATION', 'CITY']] print(filtered_df)
关键提示
- 数据量较大时优先用方法1,避免全量数据占用过多内存
- 若城市名称包含特殊字符(如单引号),参数化查询能自动处理转义,比手动拼接字符串更安全
内容的提问来源于stack exchange,提问作者Iocc Reports
相关产品推荐
相关产品推荐

