使用to_csv DESPITE指定编码的Unicode错误= 'utf-8'

我正在尝试将数据帧写入csv文件,如下所示:

df.to_csv(path, index = True, header = True)

但我一直收到这个错误:

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

我在这里检查了论坛,发现有人建议在to_csv方法中添加编码参数 . 所以我尝试了这个

df.to_csv(path, index = True, header = True, encoding = 'utf-8')

但我一直得到同样的错误!有人可以解释一下如何解决这个问题吗?

Note :我用来创建这个数据帧的源文件是csv,xls和txt文件的混合 . 我尝试在我使用的每个read_csv和read_excel方法上指定encoding = 'utf-8',但在使用to_csv时仍然会出现相同的错误 .

这是我的阅读方法:

iap = pd.read_csv(r'C:\Users\revenue.csv', encoding = 'utf-8')

installs = pd.read_excel(r'C:\Users\installs.xlsx', encoding = 'utf-8')

ecpm = pd.read_csv(r'C:\Users\eCPM org.txt', encoding = 'utf-8')

ads = pd.read_csv(r'C:\Users\total_ads_watched.csv', encoding = 'utf-8')

回答(1)

3 years ago

应该尝试绝对路径 .

df.to_csv("/home/anand/file.csv", index = True, header = True, encoding = 'utf-8')

不过值得一看String literals

字符串文字可以用单引号(即“...”)或双引号(即“......”)括起来 . 它们也可以包含在三个单引号或双引号的匹配组中(这些通常称为三引号字符串) . 反斜杠字符(即)用于转义否则具有特殊含义的字符,例如换行符,反斜杠本身或引号字符 . 字符串文字可以选择以字母r或R为前缀 . 这些字符串称为原始字符串,并对反斜杠转义序列使用不同的规则 . 在三引号字符串中,允许使用未转义的换行符和引号,除了连续三个未转义的引号终止字符串 . 除非存在r或R前缀,否则字符串中的转义序列将根据与标准C使用的规则类似的规则进行解释 .