使用 Pandas 写入 Excel 时出现意外字符

我有一个dictionary这样的:


film = {

    'ID': [],

    'Name': [],

    'Run Time': [],

    'Genre': [],

    'link': [],

    'name 2': []

}

然后我将它填充到一个 for 循环中,如下所示:


film['ID'].append(film_id)

film['Name'].append(film_name)

film['Run Time'].append(film_runtime)

film['Genre'].append(film_genre)

film['link'].append(film_link)

film['name 2'].append(film_name2)

然后我将字典转换为 Pandas DataFrame,以便将其写入.xlsx文件。现在在我真正写它之前,我打印它来检查Run Time列的值。一切正常:


output_df = pd.DataFrame(film).set_index('ID')

print(output_df['Run Time'])


output:

ID

102    131

103     60

104       

105       

Name: Run Time, dtype: object

但是,当我写它时,就像这样:


writer = ExcelWriter('output.xlsx')

output_df.to_excel(writer, 'فیلم')

writer.save()

该文件如下所示:

http://img4.mukewang.com/61e6880700016c1005890214.jpg

如您所见,'文件中有一个额外的(单引号)字符。这个字符是不可见的。但我可以强调一下:

http://img.mukewang.com/61e688110001f83805730181.jpg

如果我删除它,数字变为RTL

http://img2.mukewang.com/61e6881c0001959a05660176.jpg

所以我认为隐形字符是LTR MARK ( \u200E)。我像这样删除它:

film['Run Time'].append(film_runtime.replace('\u200E', ''))

但什么也没发生,角色还在。

我怎样才能解决这个问题?


白衣非少年
浏览 402回答 2
2回答

慕码人8056858

您需要确保在转换为 .xlsx 文件之前将需要为数字的单元格转换为数字(通常是整数)。在你的情况下:film['Run Time'].append(int(film_runtime))

胡子哥哥

Excel 中值之前的 ' 强制该值变为字符串。看起来 Excel Writer 将此类列表解释为字符串数组。更改 DataFrame 中的类型应该可以解决它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python