首页 > 解决方案 > 使用转义字符读取 csv

问题描述

我有一个 csv 文件,其中包含一些文本等。我想标记(拆分成单词列表)这个文本并且在如何pd.read_csv解释转义字符方面遇到问题。

我的 csv 文件如下所示:

text, number
one line\nother line, 12

代码如下:

df = pd.read_csv('test.csv')
word_tokenize(df.iloc[0,0])

输出是:

['one', 'line\\nother', 'line']

而我想要的是:

['one', 'line', 'other', 'line']

问题pd.read_csv()不在于将其解释\n为换行符,而是解释为两个字符(\n)。

我尝试将escapechar参数设置为'\'和 ,'\\'但两者都只是从字符串中删除斜杠而不对换行符进行任何解释,即字符串变为on one linenon other line.

如果我明确地设置df.iloc[0,0] = 'one line\nother line'word_tokenize工作得很好,因为\n这次实际上被解释为换行符。

理想情况下,我会简单地改变pd.read_csv()解释文件的方式,但其他解决方案也可以。

标签: pythonpandascsv

解决方案


你可以简单地试试这个

import pandas as pd

df = pd.read_csv("test.csv", header=None)
df = df.apply(lambda x: x.str.replace('\\', " "))
print(df.iloc[1, 0])

# output: one line other line 

推荐阅读