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