UnicodeEncode错误导致tracebook,但仍有一些输出(Pandas列表到.txt文件)。

问题描述 投票:0回答:1

我创建了一个列表,其中包含了pandas数据框架的列号和列名。


print(example_list)

[[0, 'name'] [1, 'gender'] ... [85, 'HEXACO_12'] [86, 'general self efficacy']]

为了方便与我一起工作的其他人,我把这个文件写成了一个.txt文件,这样他们就可以快速得到变量名和它在数据框架中的位置。

df2_positions = ([list((i, df2.columns[i])) for i in range(len(df2.columns))])

with open('file_positions.txt', 'w') as f_positions:
    for i in example_list:
        f_positions.write(f'{i}\n')

当这个文件运行时,我在正确的位置得到了.txt文件,而且它是完整的,但它却抛出了以下错误。

---------------------------------------------------------------------------
UnicodeEncodeError                        Traceback (most recent call last)
<ipython-input-29-acec172b19f5> in <module>
     10 with open('file_positions.txt', 'w') as f_positions:
     11     for i in example_list:
---> 12         f_positions.write(f'{i}\n')

myfile.py in encode(self, input, final)
     17 class IncrementalEncoder(codecs.IncrementalEncoder):
     18     def encode(self, input, final=False):
---> 19         return codecs.charmap_encode(input,self.errors,encoding_table)[0]
     20 
     21 class IncrementalDecoder(codecs.IncrementalDecoder):

UnicodeEncodeError: 'charmap' codec can't encode character '\ufffd' in position 85: character maps to <undefined>

我很困惑,因为我检查了文件,它没有用[86,'一般自我效能']来结束,而是用[55,'当我看到一个我喜欢的东西的机会时,我马上就会兴奋起来']来结束。但是,回溯说问题出在第85项的一个字符上。

我尝试了手动和程序删除列名中的奇怪字符,但还是得到同样的错误。

谁能帮我弄清楚是怎么回事?

谢谢你的帮助。

python-3.x pandas python-unicode
1个回答
1
投票

可能问题出在下一项([56, '......']),因为当错误发生时,当前项没有被写入。所以如果它在文件里面,就不是问题行。

你能在这里加上这一行吗?

© www.soinside.com 2019 - 2024. All rights reserved.