我想用xlsxwriter写出我的熊猫表。我有两列:熊猫Xlsxwriter时间格式
Date | Time
10/10/2015 8:57
11/10/2015 10:23
但是当我使用xlsxwriter,输出为:
Date | Time
10/10/2015 0.63575435
11/10/2015 0.33256774
我尝试使用DATETIME_FORMAT = 'HH:MM:SS',但这并没有改变它。如何在不影响日期栏的情况下正确格式化日期?
我想用xlsxwriter写出我的熊猫表。我有两列:熊猫Xlsxwriter时间格式
Date | Time
10/10/2015 8:57
11/10/2015 10:23
但是当我使用xlsxwriter,输出为:
Date | Time
10/10/2015 0.63575435
11/10/2015 0.33256774
我尝试使用DATETIME_FORMAT = 'HH:MM:SS',但这并没有改变它。如何在不影响日期栏的情况下正确格式化日期?
以下代码适用于我,但有一些注意事项。如果自定义格式化工作取决于您打开的Windows/Excel版本。优先自定义格式取决于Windows操作系统的语言设置。
所以,是的,没有最好的解决方案......但这个想法是改变每个列的格式,而不是改变如何解释数据类型的整个的excel文件正在创建。
import pandas as pd
from datetime import datetime, date
# Create a Pandas dataframe from some datetime data.
df = pd.DataFrame({'Date and time': [date(2015, 1, 1),
date(2015, 1, 2),
date(2015, 1, 3),
date(2015, 1, 4),
date(2015, 1, 5)],
'Time only': ["11:30:55",
"1:20:33",
"11:10:00",
"16:45:35",
"12:10:15"],
})
df['Time only'] = df['Time only'].apply(pd.to_timedelta)
#df['Date and time'] = df['Date and time'].apply(pd.to_datetime)
# Create a Pandas Excel writer using XlsxWriter as the engine.
# Also set the default datetime and date formats.
writer = pd.ExcelWriter("pandas_datetime.xlsx",
engine='xlsxwriter')
# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')
# Get the xlsxwriter workbook and worksheet objects in order to set the column
# widths, to make the dates clearer.
workbook = writer.book
worksheet = writer.sheets['Sheet1']
#PLAY AROUND WITH THE NUM_FORMAT, IT DEPENDS ON YOUR WINDOWS AND EXCEL DATE/TIME SETTINGS WHAT WILL WORK
# Add some cell formats.
format1 = workbook.add_format({'num_format': 'd-mmm-yy'})
format2 = workbook.add_format({'num_format': "h:mm:ss"})
# Set the format
worksheet.set_column('B:B', None, format1)
worksheet.set_column('C:C', None, format2)
worksheet.set_column('B:C', 20)
# Close the Pandas Excel writer and output the Excel file.
writer.save()
当我尝试将它设置为timedelta或datetime时('TypeError:类型'datetime.time'的对象没有len()'),熊猫数据帧错误。至少我已经缩小了现在的问题 - 希望一旦我修复了熊猫表,那么这将工作。 – Abi
“Time”列的dtype是什么?你能发布'df.info()'的输出吗? – EdChum
对于'日期'和'时间'列,它们都是非空对象。 – Abi
所以他们是'str'而不是'datetime'?如果没有发布我询问的内容 – EdChum