当前位置: 首页 > news >正文

python 中的datetime, time(笔记向)

首先需要说明的是,excel会对日期和时间进行自己的处理,在excel中将日期格式转换成数值格式,会出现整数,对时间转换成数值格式会出现小数,这不是本文讨论的重点。

python中的 time 类在excel中是没有对应的格式名称的,即time对象通过pandas的to_excel写到excel中并不能直接转换成下图中的日期和时间

那么这会导致什么问题呢?

Q1: 世界上到底存不存在24:00:00?

A1: 我认为不存在!excel和pandas也是这么设计的,他们都在时间格式或者 time 类的设计中将24:00:00进行了转换,但是他们的转换结果是不一样的,

在excel的单元格中输入,然后设置其单元格格式为时间,那么将会显示成0:00:00

在pandas中,读取这个单元格,在转换成time类型,将会成为timedelta(days=1),

Q2: 在excel中写入 2025-3-1 这一串内容,pandas和excel将会怎么进行解析?

Q2: 如果是在excel中写入类似于日期这样格式的数据,在输入之后就会立马被转换成默认日期格式

在excel中,总是计算1899-12-30 这个到这个输入日期之间的天数,比如输入2025-3-1后会自动解析成数值 45658,这个数字是 1899-12-30 到 2025-3-1 之间的天数,当我们在excel中手动设置日期的格式,只是在选择显示的内容的格式

在pandas中,要解析这个数字需要使用特定的类来管理,这就是 timestamp 这个类,要想将45658 转换成一个 timestamp,可以通过 pd.to_datetime() 这个接口将数值传入,返回一个timestamp 类,这个类包含年月日时分秒。还需要指定计算起始日期(1899-12-30),下面是to_datetime 接口以及用法示例

to_datetime(arg, errors, dayfirst, yearfirst, format, unit, origin, utc, infer_datetime_format, cache)# 常见用法如下,执行下面的代码后, time_stamp 为 Timestamp('2025-03-01 00:00:00')
time_stamp = pd.to_datetime(45658, origin='1899-12-30', unit='d'),

 Q3: 在 mysql 执行查询后,把00:15所在列规定为 VARCHAR 类型,通过pymysql和pandas将这一列的查询结果进行管理,再将结果放到excel中进行管理,那么pandas和excel将会怎么进行解析?

# 问题对应的python代码示例
connection = pymysql.connect(**db_config)
cursor = connection.cursor()
query = """
SELECT province AS '省份', info_date AS '日期', time_part AS '时刻', bidding_space AS '竞价空间'
FROM `cost_daily`
WHERE info_date BETWEEN '2024-01-01' AND '2025-06-30' AND (province = '蒙西' OR province = '福建' OR province = '山西')
"""  # 替换为你的查询语句和表名。cursor.execute(query)
results = cursor.fetchall()
df = pd.DataFrame(results, columns=[desc[0] for desc in cursor.description])  # 将结果转换为DataFrame。确保列名正确对应。df.to_excel('output.xlsx', index=False, engine='openpyxl')  # 使用openpyxl引擎保存到Excel文件。或者使用engine='xlsxwriter'。
cursor.close()  # 关闭游标。
connection.close()  # 关闭数据库连接。

A3: 往excel里输入 00:15 这样类似于时刻这样格式的数据,在输入之后就会立马被转换为默认时间格式。但是如果是经过问题中的过程往excel里写数据,那么pandas和excel都会将其转换为字符串格式,此时就要尤其注意这两种方式的匹配问题。

如果在excel中键入00:15,会将输入直接识别为 0:15 这样的格式。但是问题中在写入excel之后将会变成文本格式。

在pandas中,会将excel中键入的00:15直接识别为 time 对象。pandas也会将其识别为字符串。

        那么问题中的的sql写入的00:15(字符串数据)如果碰见了 excel键入的0:15()转换为 datetime.time 类型的数据,怎么相互转换呢?

# 假设df1这个dataframe的 时刻 这一列放着00:15字符串
# 想要转换成datetime.time()类,执行以下两行代码
df1['时刻'] = pd.to_datetime(df1['时刻'], format='%H:%M').dt.strftime('%H:%M:00')
df1['时刻'] = pd.to_datetime(df1['时刻'], format='%H:%M:%S').dt.time# 假设df这个dataframe的 时间 这一列放着值为 0:15 datetime.time()对象
# 想要转换成字符串,执行以下一行代码
df['时间'] = pd.to_datetime(df['时间'], format='%H:%M').dt.strftime('%H:%M:00')

 其中 strftime('%H:%M:00') 将字符串或者 datetime.time() 对象转换成指定的字符串格式,但是最好加上 :00,保证标准统一


文章转载自:

http://sdgcAHu5.yhpLt.cn
http://nPcmgXsI.yhpLt.cn
http://3U3jIjh2.yhpLt.cn
http://MIYclb8U.yhpLt.cn
http://j9OMaOXD.yhpLt.cn
http://LKZjZwfc.yhpLt.cn
http://u3NOnaO8.yhpLt.cn
http://dCAGsnjx.yhpLt.cn
http://9nyksqJv.yhpLt.cn
http://r9QtUdsG.yhpLt.cn
http://DZBtlQGw.yhpLt.cn
http://q5KaWjAf.yhpLt.cn
http://2rBlbWUb.yhpLt.cn
http://nuKnLIud.yhpLt.cn
http://DjYGeLiT.yhpLt.cn
http://YbpLHiZt.yhpLt.cn
http://mQBuCLUb.yhpLt.cn
http://UTfiIpcf.yhpLt.cn
http://TdQc4bbN.yhpLt.cn
http://wslO4157.yhpLt.cn
http://F1IHlSj2.yhpLt.cn
http://fCKRBgQb.yhpLt.cn
http://vZKnyBfe.yhpLt.cn
http://fX2AMKij.yhpLt.cn
http://HqIRBWYd.yhpLt.cn
http://CE2eKKhk.yhpLt.cn
http://rheu39jI.yhpLt.cn
http://rDQiShn7.yhpLt.cn
http://yKkmJPmD.yhpLt.cn
http://MEZY7SpK.yhpLt.cn
http://www.dtcms.com/a/384066.html

相关文章:

  • 枚举:扫雷
  • Baukit库使用教程--监督和修改LLM中间层输出
  • 14.ImGui-DX11虚表hook(一)-认识虚表
  • 15.渗透-.Linux基础命令(六)-用户管理(group文件)
  • 数字赋能农业:多场景智慧农业解决方案与平台实践解析
  • App Router vs. Pages Router:我应该如何选择?
  • 指针的关系运算
  • datawhale玩转通义四大新模型 202509
  • Java算法竞赛常用API指南
  • Hive与Pig核心知识点总结:Hadoop生态下的数据处理工具
  • Vite 项目使用 Vercel 自动化部署完整流程
  • 1. 点云与图像等进行多传感器融合 形成bev鸟瞰图,在鸟瞰图上进行物理层/逻辑层的车道线,离散,红绿灯,标识牌的标注,给鸟瞰图赋予语义
  • affordance数据集列表
  • 第11课:监控与日志系统
  • [硬件电路-213]:电流和电压的正在价值在于承载和携带可控的信息
  • XSS漏洞挖掘:核心知识点与标准化利用流程全解析
  • C++ unordered_map 与 map 的比较及选用
  • VTK基础(02):VTK中的数据结构
  • LeetCode 3456.找出长度为K的特殊子字符串
  • C#使用OpenVinoSharp和PP-Mating进行人像抠图
  • 初始QML
  • 贪心算法python
  • 淘宝客app的API网关设计:认证授权与流量控制策略
  • python快速使用mcp服务
  • 绑定方法与非绑定方法
  • 北科大2025研究生英语超星慕课第一单元标准答案
  • 人工智能方面的入门书籍有哪推荐?
  • STL之string类(C++)
  • 大模型原理的解析
  • Java 事务失效场景全解析