Jupyter Notebook-Python /在每一行的字符串/文本末尾显示双引号

时间:2019-12-18 17:00:10

标签: python jupyter-notebook quotes

我有管道定界符文本文件,该文件使用pd.read_csv(filepath,sep =“ |”,encoding ='utf-8')读取。但是,当在数据框中显示数据时,我意识到某些文本列包含以英寸为单位的度量单位,用双引号表示:|表38“ x38” |有时有些字段也包含双引号,看起来可能像这样|“ Table 38” x38“” |但是数据框中显示的数据会翻译引号并将所有引号放在文本的末尾,而不是将引号显示在正确的位置。因此,数据将如下所示:|表38x38“” |。我想知道如何使Jupyter Notebook或DataFrame正确显示引号,因为它们代表度量。

请帮助!

1 个答案:

答案 0 :(得分:0)

基于here的技巧是使用转义字符来指定引用作为符号。让我们使用反斜杠作为转义字符。
pd.read_csv中,您可以添加escapechar='/'来指定。
在您的CSV文件中,您希望诸如“ Table 38“ x38”“之类的情况成为“ Table 38 \” x38 \“”。但是,您不想手动进行这些更改,因此您将以编程方式浏览该文件,并将所有“内部”引号的情况更改为/"

下面的代码将对您用filepath指定的数据文件执行此操作。

import pandas as pd
intermdt_txt = ""
with open(filepath, 'r') as input:
    for line in input:
        altered_line_parts = []
        parts = line.split("|")
        for part in parts:
            if part.startswith('"') and part.strip().endswith('"'):
                part = '"' + part[1:-1].replace('"','/"') + '"'
            altered_line_parts.append(part)
        intermdt_txt += '|'.join(altered_line_parts) + "\n"        
%store intermdt_txt > intermdt_txt.txt
df = pd.read_csv("intermdt_txt.txt",sep="|",encoding='utf-8', escapechar='/')

您可能需要调整转义符以适合您的特定需求。