gpt4 book ai didi

python - Pandas - 如何替换单引号后跟逗号(“,”)

转载 作者:行者123 更新时间:2023-12-04 07:35:34 25 4
gpt4 key购买 nike

我有一个如下所示的文本文件:

,Symbol,Date"+
",DRI,23/04/2021"+
",CQN,28/04/2021"+
",TGG,29/01/2021"+
我想要看起来像这样的结果:
"Symbol,Date"+
"DRI,23/04/2021"+
"CQN,28/04/2021"+
"TGG,29/01/2021"
我正在使用 pandas 将 csv 转换为上面的文本文件,但我在 (",) 之后得到了这个带逗号的单双引号,我只想用一个单双引号 (") 替换它。
在下面的代码中:
df = pd.read_csv(in_csv, na_filter=False, encoding='utf-8-sig')

# dict of replacements
replacements = {
'"",': '"'
}

# using the replace() method
df1 = df.replace(replacements, regex=True)
我尝试了许多可能的解决方案,例如
1. '\"' to '"' 
2. """," to """"
3. '\""," to '"'
...
但似乎没有一个工作。在记事本中使用查找和替换很容易,但我需要仅使用代码来自动执行此任务。
我也被困在如何只删除第一个逗号和最后一个 (+) 符号而不影响其余部分。
你能建议我解决这个问题的方法吗?

最佳答案

这里不需要 Pandas 。该文件不是 csv 文件,而是纯文本文件,因此您可以使用:

  • re模块来更改行的开头和最后一行的结尾。在遍历行之前编译正则表达式稍微更有效
  • 临时文件上的常见读写模式通常用于修改文本文件。保留前一行是轻松识别最后一行的简单方法。

  • 它可能是:
    import re
    import os

    infile = 'ess.txt'
    tmpfile = infile + '.tmp'

    # pre-compile the regular expressions
    init = re.compile(r'^"?,')
    last = re.compile(r'"\+\s*$')

    with open(infile) as fd, open(tmpfile, 'w') as out:
    old = None
    for line in fd:
    if len(line.strip()) == 0: # skip empty lines
    continue
    if old is not None:
    out.write(old)
    old = init.sub('"', line)
    out.write(last.sub('"\n', old))

    os.remove(infile)
    os.rename(tempfile, infile)

    关于python - Pandas - 如何替换单引号后跟逗号(“,”),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67758930/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com