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

如何用Pandas处理CSV中的反斜杠与引号并添加单引号包裹

解决方案

先修正字符串清理逻辑,找回丢失的'S

你之前的清理代码错误移除了单引号,导致JIMMY'S变成JIMMYS。要只去掉反斜杠和双引号、保留原有的单引号,把正则改成匹配"和\即可:

# 仅移除反斜杠(\)和双引号("),保留单引号(')
df = df.replace(r'["\\]', '', regex=True)

处理后\JIMMY'S PALACE"会变成JIMMY'S PALACE,不会丢失'S部分。

用单引号包裹处理后的列值

接下来给每个字符串值加上单引号,避免后续读取报错,有几种实现方式:

1. 批量处理整个DataFrame

用applymap遍历所有元素,只给字符串类型的值加单引号:

df = df.applymap(lambda x: f"'{x}'" if isinstance(x, str) else x)

非字符串类型(比如数字)会保持原样,不会被修改。

2. 针对特定列处理

如果只需要处理某几列,直接遍历目标列操作:

# 替换成你需要处理的列名列表
target_cols = ['your_column_name']
for col in target_cols:
    df[col] = df[col].apply(lambda x: f"'{x}'" if isinstance(x, str) else x)

3. 快速处理单一字符串列

如果确定某列全是字符串,可以直接拼接单引号:

df['target_col'] = "'" + df['target_col'] + "'"

完整示例

import pandas as pd

# 模拟原始数据
data = {'location': ['\\JIMMY\'S PALACE"', '"JIMMY\'S FLOOR"']}
df = pd.DataFrame(data)

# 清理字符串
df = df.replace(r'["\\]', '', regex=True)

# 包裹单引号
df = df.applymap(lambda x: f"'{x}'" if isinstance(x, str) else x)

print(df)
# 输出:
#             location
# 0  'JIMMY'S PALACE'
# 1  'JIMMY'S FLOOR'

处理后导出CSV,这些值会以单引号包裹,有效避免后续读取时的格式报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:00:11