python - 仅从不均匀熊猫列中的时间戳中删除日期和保持时间
问题描述
我有以下数据框结构:
我想转换列“Entr”。和“Fim”到时间 (HH:MM),格式为:HH:MM:SS。我在转换时遇到困难,因为列不均匀:有时出现“-”,有时是日期时间格式“DD-MM-YYYY HH:MM:SS”,有时是时间“HH:MM:SS”。
列:
列示例:
https://drive.google.com/file/d/1ujvPED0S1vPZ9bmCSob3vR68XwUXC2gk/view?usp=sharing
解决方案
阅读 Excel 文件会给您留下混合数据类型的列;一些元素是datetime.datetime
对象(例如datetime.datetime(1900, 1, 1, 0, 10)
在 df['Fim'].iloc[2]),一些datetime.time
(例如datetime.time(13, 15)
在 df['Fim'].iloc[0])。AFAIK 与 xlrd / openpyxl 库如何读取文件pandas
有关 - 对此无能为力。相关:当时间为 00:00 时,Pandas 读取 excel 返回类型对象。
TLDR:
将所有内容转换为字符串并删除日期。这让您有 HH:MM:SS 格式的时间。
df = pd.read_excel(filename)
df['Entr.'] = df['Entr.'].astype(str).str.split(' ').str[-1]
df['Fim'] = df['Fim'].astype(str).str.split(' ').str[-1]
df.head()
Entr. Fim
0 05:25:00 13:15:00
1 13:15:00 16:00:00
2 16:00:00 00:10:00
3 03:30:00 11:18:00
4 11:18:00 18:00:00
推荐阅读
- javascript - 如何修复javascript对象中的循环引用?
- c# - 使用 XElement 作为 XElement 数组并访问它们
- java - 卡夫卡代理字节输出尖峰发送,而卡夫卡字节不断进来
- c# - IQueryable 和 AsEnumerable():延迟执行与立即执行
- swift - 如何从 Swift 5 中的另一个类获取数组
- node.js - 在 Kubernetes 集群中的所有 pod 之间共享 express.js 应用程序的公共目录
- bash - Husky - sed: -i 不能与标准输入一起使用
- python-3.x - Python3 数据插补
- javascript - 将 UTC 日期转换为毫秒 JavaScript
- xcode - 如何在 Watch Interface 故事板中使用 Xcode 的 Vary for Apple Watch 按钮自定义特定手表尺寸的布局