我有这样的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()
文件如下:
如您所见,文件中还有一个额外的'
(单引号)字符。该字符不可见。但我可以突出显示它:
如果我将其删除,该号码将为RTL
:
所以我认为看不见的字符是LTR MARK(\u200E
)。我这样删除了它:
film['Run Time'].append(film_runtime.replace('\u200E', ''))
但是什么也没发生,角色仍然在那里。
我该如何解决?
答案 0 :(得分:1)
在转换为.xlsx文件之前,您需要确保将需要为数字的单元格转换为数字(通常为整数)。
就您而言:
film['Run Time'].append(int(film_runtime))
答案 1 :(得分:0)
Excel中值之前的'强制将值转换为字符串。看起来Excel Writer正在将此类列表解释为字符串数组。 在DataFrame中更改类型应该可以解决该问题。