为了账号安全,请及时绑定邮箱和手机立即绑定

如何将秒转换为 H:MM:SS 并将日期保留在单独的列中

如何将秒转换为 H:MM:SS 并将日期保留在单独的列中

凤凰求蛊 2021-10-05 15:52:18
我有几秒钟内需要转换为 H:MM:SS 的数据。当这些数据进来时,它在单独的列中也有一个日期字段。我需要将秒数据转换为 H:MM:SS 但将日期字段保留为日期。我需要输出看起来像 Excel 中所需的输出。我试过使用 Excel writer 并设置 date_format 或 datetime_format 的默认格式,但是这会转换 Excel 文件中的所有日期时间列。jmcnamara 之前的回复表明这是因为单元格格式优先于列或行格式。这是我已经开始工作的一些示例代码,但它不是很pythonic。它涉及将数据框保存到 excel,然后重新打开那个确切的文件。# importsimport pandas as pdimport randomfrom openpyxl import load_workbookfrom openpyxl.styles import NamedStyle# generate datanumbers = (random.sample(range(500, 2000), 10))df = pd.DataFrame(numbers)df.rename(columns={df.columns[0]:'Time'}, inplace=True)# convert to timedf['Timestamp'] = pd.to_timedelta(df['Time'], unit='s') + pd.Timestamp(0)#df['Openpyxl Time'] = pd.to_timedelta(df['Time'], unit='s') + pd.Timestamp(0)# write to filewriter = pd.ExcelWriter('test.xlsx', engine = 'xlsxwriter')df.to_excel(writer, sheet_name= 'Sheet 1', index=False)writer.save()# load just created filewb = load_workbook('test.xlsx')ws = wb.active# set format styledate_style = NamedStyle(name='datetime', number_format='h:mm:ss')# simple way to format but also formats column headerfor cell in ws['C']:    cell.style = date_style#more complex way to format, but does not format column header# for row in ws.iter_rows('C{}:C{}'.format(ws.min_row+1, ws.max_row)):#     for cell in row:#         cell.style = date_stylewb.save('test.xlsx')wb.close()我如何重写它,而不必重新打开 excel 文件以将不同的列更改为不同的日期时间格式?所需的输出也无法在 excel 中作为字符串读取。我需要能够从时间戳中得出平均值和总和。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信