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

如何在SQL或Pandas中移除列名的引号与逗号等特殊字符?

问题

我尝试使用Python/SQLAlchemy从Snowflake表中拉取部分列到Pandas DataFrame,后续用Python/Pandas进行操作,但发现生成的DataFrame列名带有引号。相关代码如下:

sql = '''SELECT 'concept_name', 'ndc'
         FROM db.schema.tbl'''

df = pd.read_sql(sql, conn)

df.columns.to_list()  #print out column names

执行后列名输出为:["'CONCEPT_NAME'", "'NDC'"],请问如何在SQL本身或Pandas中移除每个列名中的特殊字符?

解决方法

方法一:修改SQL语句(推荐)

你在SQL里用单引号包裹列名的操作,本质是把字符串字面量当成了列名,这才导致返回的列名自带引号。正确的做法是直接写列名,无需额外包裹:

SELECT concept_name, ndc
FROM db.schema.tbl

如果需要自定义列名(比如统一大小写),可以用AS指定别名:

-- 保留原列名大小写
SELECT concept_name AS concept_name, ndc AS ndc
FROM db.schema.tbl

-- 强制转为小写列名
SELECT concept_name AS concept_name_lower, ndc AS ndc_lower
FROM db.schema.tbl

调整后查询返回的列名就不会带有引号了。

方法二:在Pandas中批量清理列名

如果已经获取了带引号的DataFrame,可以通过Pandas的字符串方法快速处理列名:

# 移除列名两端的单引号
df.columns = df.columns.str.strip("'")

# 可选:同时将列名转为小写(按需调整)
df.columns = df.columns.str.strip("'").str.lower()

# 验证结果
print(df.columns.to_list())  # 输出: ['CONCEPT_NAME', 'NDC'] 或 ['concept_name', 'ndc']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:20:17