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

Python使用pandas对parquet多表执行SQL查询实现行转列输出std kw字段

处理方案

前置说明

如果已经完成Parquet三张表的读取拿到了对应DataFrame,可直接跳过读取步骤,从数据合并环节开始执行。

1. 读取Parquet表数据

import pandas as pd

# 按需调整Parquet文件路径和筛选条件,读取三张表
publication_df = pd.read_parquet("你的parquet文件路径", filters=[("表名字段", "==", "publication")])
section_df = pd.read_parquet("你的parquet文件路径", filters=[("表名字段", "==", "section")])
alt_section_df = pd.read_parquet("你的parquet文件路径", filters=[("表名字段", "==", "alt section")])

如果三张表分别存为独立Parquet文件,直接把路径替换为对应表的文件路径即可,无需加filters参数。

2. 合并关键词数据并关联出版物编号

# 合并section和alt section表的关键词数据,需替换为你实际的关联外键、关键词字段名
all_kw_df = pd.concat([
    section_df[["关联外键字段", "标准关键词字段"]],
    alt_section_df[["关联外键字段", "标准关键词字段"]]
], ignore_index=True)

# 关联publication表拿到pub number,替换对应字段名
merge_df = all_kw_df.merge(
    publication_df[["关联外键字段", "pub number"]],
    on="关联外键字段",
    how="left"
)

3. 转换为要求的宽表格式

# 给同一个pub number下的关键词排序编号
merge_df["kw序号"] = merge_df.groupby("pub number").cumcount() + 1

# 透视转换为宽表
result_df = merge_df.pivot(
    index="pub number",
    columns="kw序号",
    values="标准关键词字段"
).reset_index()

# 重命名列符合要求
result_df.columns = ["pub number"] + [f"stdkw{i}" for i in result_df.columns[1:]]

# 可选:空值填充为空字符串
result_df = result_df.fillna("")

输出样例

执行完成后即可得到符合要求的DataFrame,格式如下:

pub numberstdkw1stdkw2
1078143T.Art.

如果同一个pub number对应N个关键词,会自动生成stdkw1到stdkwN共N个关键词列。

内容的提问来源于stack exchange,提问作者Nikita Ramesh Rao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:54:05