Я пытаюсь изменить все экземпляры datetime на строку и экспортировать свой dataframe в excel. Информационный кадр может иметь от 20 000 до 50 000 записей. Это мой текущий код:
wb = xw.Book('filelname.xlsx')
sht = wb.sheets['FNC']
data = wb.sheets['Data']
smdata = wb.sheets['Social']
df_sm_temp = sm_all
df_sm_temp['Date'] = df_sm_temp['Date'].apply(lambda x: str(x) if isinstance(x, datetime.time) else x)
df_sm_temp['Added'] = df_sm_temp['Added'].apply(lambda x: str(x) if isinstance(x, datetime.time) else x)
df_sm_temp['Updated'] = df_sm_temp['Updated'].apply(lambda x: str(x) if isinstance(x, datetime.time) else x)
smdata.range('SM_ALL').value = df_sm_temp
При попытке запустить это, я получаю MemoryError. Любая помощь будет принята с благодарностью!
Ниже приведен небольшой пример набора данных: https://www.sendspace.com/file/jxhmx2
Спасибо
на самом деле вам не нужно преобразовывать данные сами, просто используйте datetime_format
в сочетании с движком xlsxwriter
:
Демо-версия:
writer = pd.ExcelWriter('/path/to/result.xlsx', engine='xlsxwriter',
date_format='mm/dd/yyyy', datetime_format='mm/dd/yyyy')
df.to_excel(writer)