我创建了一个列表,其中包含了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项的一个字符上。
我尝试了手动和程序删除列名中的奇怪字符,但还是得到同样的错误。
谁能帮我弄清楚是怎么回事?
谢谢你的帮助。
可能问题出在下一项([56, '......']),因为当错误发生时,当前项没有被写入。所以如果它在文件里面,就不是问题行。
你能在这里加上这一行吗?