You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求将指定SQL语句转换为正确的Pandas与Polars代码

SQL转Pandas/Polars行数不符问题修复

原SQL逻辑

SELECT (TRUNC(lat/0.5)*0.5) AS ll_lat, (TRUNC(lon/0.5)*0.5) AS ll_lon, COUNT(lat) AS strikes FROM lightning GROUP BY ll_lat, ll_lon;

你的代码核心问题

  1. 步长不匹配:SQL按0.5的间隔截断经纬度,你的代码错误使用了0.1
  2. 多余分组项:SQL未按时间分组,你额外加入了temporalBasket字段分组,导致行数暴增

正确Pandas实现

# Pandas
df['ll_lat'] = (df['lat'] // 0.5 * 0.5).round(1)
df['ll_lon'] = (df['lon'] // 0.5 * 0.5).round(1)
# 仅按ll_lat和ll_lon分组,移除时间分组项
df = df.groupby(['ll_lat', 'll_lon'], as_index=False).agg(strikes=('lat', 'count'))

正确Polars实现

# Polars
df_p_out = df_p.groupby(
    (pl.col("lat") // 0.5 * 0.5).alias("ll_lat"),
    (pl.col("lon") // 0.5 * 0.5).alias("ll_lon"),
# 移除时间截断的分组项
).agg(strikes=pl.col("lat").count())

说明

调整后代码完全对齐原SQL逻辑,结果行数会和SQL输出的10168行一致。如果后续需要加入时间维度分组,需确认业务需求,但原SQL未包含该逻辑。

内容的提问来源于stack exchange,提问作者Curious

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 04:52:35