我有一个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:ID102 131103 60104 105 Name: Run Time, dtype: object但是,当我写它时,就像这样:writer = ExcelWriter('output.xlsx')output_df.to_excel(writer, 'فیلم')writer.save()该文件如下所示:如您所见,'文件中有一个额外的(单引号)字符。这个字符是不可见的。但我可以强调一下:如果我删除它,数字变为RTL:所以我认为隐形字符是LTR MARK ( \u200E)。我像这样删除它:film['Run Time'].append(film_runtime.replace('\u200E', ''))但什么也没发生,角色还在。我怎样才能解决这个问题?
2 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
您需要确保在转换为 .xlsx 文件之前将需要为数字的单元格转换为数字(通常是整数)。
在你的情况下:
film['Run Time'].append(int(film_runtime))
胡子哥哥
TA贡献1825条经验 获得超6个赞
Excel 中值之前的 ' 强制该值变为字符串。看起来 Excel Writer 将此类列表解释为字符串数组。更改 DataFrame 中的类型应该可以解决它。
添加回答
举报
0/150
提交
取消
