【Python杂事】 处理Excel中日期时间之间没有空格问题

news2024/12/23 20:17:16

目录

  • 一、数据源要求
  • 二、逻辑思路
      • 1、ROI区域
      • 2、对ROI区域进行判定
  • 三、代码实现
  • 四、成果展示
  • 总结

碰到一个非常有趣的问题:

  在我们的日常工作中,常常需要处理各种各样的数据,其中不乏包含日期和时间信息的数据。
  有时候我们会发现这些数据中日期和时间之间没有空格,比如"2023/3/412:20:9";
  这样的数据让人感觉很别扭,还不利用后续数据的统计。那么,我们该怎么处理这个问题呢?  

一、数据源要求

有什么菜才能做什么饭。要先分析原材料成分,我现在拿到的数据格式是如下:
在这里插入图片描述

  • 从上到下日期时间是递增的;
  • 时间格式是:0:00:00类型的;

二、逻辑思路

1、ROI区域

年月日中的日与时分秒中的时之间;YYYY/MM/DD HH:mm:ss(红色区域)

2、对ROI区域进行判定

依出现的字符个数进行判定:

  1. 若ROI区域包含空格,则不进行处理,比如:“4 4”、“12 3”;
  2. 有4个和有2个个字符的,只能是日和时各占一半,比如:“1313”、“12”;
  3. 有三个字符的,比较复杂:
    3.1. 前两个字符必须小于32,后两个字符必须时小于24,比如:“414”、“152”;
    3.2. 对于三个字符中间存在0,则把前两个按照日来算,比如:“102”、“203”;
    3.3 对其他的三个字符无法判定的,我们需要引入一个全局变量sign,来存储最近的一个正确格式的日期,无法判定的日期就可以根据全局变量sign的日的位数,进行判定;

三、代码实现

import pandas as pd
import re,os
# 导入文件
df = pd.read_excel(r'/Users/chaizhiying/Downloads/处理日期时间空格缺失问题.xlsx',sheet_name=0)
df = df[df['日期'].notna()]
dat = [item.replace('/','-').replace(':',':') for item in df['日期'].astype('str').tolist()]
# 主要的处理逻辑函数
sign = ''
def Return_rule(wait_task):
    global sign
    if ' ' in wait_task:
        handle_wait_task = wait_task
    elif len(wait_task) == 2 or len(wait_task) == 4:
        handle_wait_task = str(int(wait_task[:len(wait_task)//2])) + ' ' + wait_task[len(wait_task)//2:]
    elif len(wait_task) == 3:
        if int(wait_task[:2]) > 31:
            handle_wait_task = wait_task[:1] + ' ' + wait_task[1:]
        elif int(wait_task[1:]) > 24:
            handle_wait_task = wait_task[:2] + ' ' + wait_task[2:]
        else:
            if wait_task[1] == '0':
                handle_wait_task = wait_task[:2] + ' ' + wait_task[2:]
            else:
                le = len(sign.split(' ')[0])
                handle_wait_task = wait_task[:le] + ' ' + wait_task[le:]
    sign = handle_wait_task
    return handle_wait_task

ls = []
for i in dat:
    wait_tas = re.findall(r'-.*-(.*?):',i,re.S)[0]
    handle_wait_task = Return_rule(wait_tas)
    result = i.split(wait_tas)[0] + handle_wait_task + i.split(wait_tas)[1]
    ls.append(result)
df['日期_处理后'] = ls
df.to_excel(r'/Users/chaizhiying/Downloads/处理日期时间空格缺失问题_c.xlsx')

四、成果展示

在这里插入图片描述

总结

通过这样的处理,我们可以让日期和时间更加直观和易读。如果你对这个问题感兴趣,不妨尝试一下吧!当然我处理后的日期格式统一格式
以上是一个简单的例子,希望它能够给您提供一些灵感。当然,如果有什么Bug或者改进的地方,欢迎留言评论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439460.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

事件抽取的概念

1. 事件的定义 事件是指发生在某个特定的时间点或时间段、某个特定的地域范围内,由一个或者多个角色参与的一个或者多个动作组成的事情或状态的改变。 2. 事件基本元素 时间、地点、人物、原因、结果 3.事件抽取的定义 主要研究如何从描述事件信息的文本中抽取…

python共词矩阵分析结果一步到位

import os import re import pandas as pd from PyPDF2 import PdfFileReader import string import yakeif __name__ __main__:# 运行第一部分代码pdf_files_path C:/Users/win10/Documents/美国智库/pdf_files# 定义一个函数,用于读取PDF文件并将其转化成文本de…

C++学习之交互式表达式求值的详细讲解和简单代码示例

一、怎么理解交互式表达式求值: 交互式求表达式值是指通过命令行交互的方式,接收用户输入的数值和运算符号,然后计算出其表达式的值并返回给用户。这种方式可以方便地进行简单的计算和查错,也可以用于程序设计中一系列复杂的计算…

单CDN与融合CDN之间的对比:优缺点及注意事项

CDN是现代互联网服务的重要组成部分,它CDN可帮助内容提供者高速交付内容,不同的服务器部署在全球不同的数据中心,并在它们之间共享相同的网络路径。随着企业意识到CDN的重要性,越来越多的企业正在使用CDN作为内容分发工具。互联网…

完美解决丨RuntimeError: create_session() called before __init__().

错误&#xff1a; import sys sys.path.append(/home/pi/ssd-detect) import ssd_detect ssd_detect.detect(/home/pi/ssd-detect/test.jpg) 报错如下&#xff1a; Traceback (most recent call last): File "test.py", line 6, in <module ssd_detect.detect(/ho…

ArcGIS制作建设项目使用林地现状图

近年来&#xff0c;随着经济社会的快速发展&#xff0c;各地建设项目不断增多&#xff0c;占用征用林地项目的数量也呈逐年上升的趋势。根据《占用征用林地审核审批管理规范》规定&#xff0c;建设项目申请占用征用林地&#xff0c;应编制的项目使用林地可行性报告&#xff1b;…

Linux-升级CMake版本(Ubuntu18.4)

一、简介 在一些场景中&#xff0c;因为CMake版本过低而无法编译&#xff0c;此时就需要升级CMake的版本。 二、升级 卸载 先卸载旧的cmake sudo apt-get autoremove cmake 安装 切换文件夹 cd /usr/src 下载cmake包。需要哪个版本&#xff0c;可以自行修改版本号。 注&#…

中国人工智能公司CIMCAI集装箱识别云服务全球用户量领先核心科技领先,免费人工智能集装箱识别云服务,智能化港航中国人工智能公司

中国人工智能公司CIMCAI集装箱识别云服务全球用户量领先核心科技领先&#xff0c;免费人工智能集装箱识别云服务&#xff0c;智能化港航智慧港航.全球领先CIMCAI ENGINE集装箱AI检测云服务&#xff0c;集装箱号识别率99.98%&#xff0c;全球超4000企业用户使用&#xff0c;集装…

npm 包本地调试(详细流程:包本地路径、npm link 、yalc)

一、使用 包本地路径安装 package.json 中的包名叫 dzmtest&#xff08;这个才是重点&#xff09;&#xff0c;包的文件夹名 test。 获取到包的文件夹路径 执行安装命令&#xff0c;然后提示安装成功 $ npm install 包文件夹路径# 例如&#xff1a; $ npm install /Users/d…

【Linux】Linux第一个小程序-进度条

前言&#xff1a; 在之前的学习中&#xff0c;我们已经基本掌握了关于了 Linux 下的一些工具的使用&#xff0c;接下来我们运用之前学到的知识&#xff0c;我将带领大家写了一个关于 进度条 的小程序来练练手&#xff01;&#xff01;&#xff01; 本文目录 &#xff08;一&am…

密码模块非入侵式攻击及其缓解技术GMT0083-2020

密码模块非入侵式攻击&#xff0c;是一种攻击方式&#xff0c;在这种攻击中&#xff0c;攻击者不会直接访问受攻击者的密码模块。相反&#xff0c;攻击者会利用其他途径获得用户的凭证&#xff0c;然后使用这些凭证去访问密码模块。这种攻击通常使用钓鱼邮件、社交工程等技巧&a…

户外软件推荐与介绍——奥维和两步路

文章目录 &#xff08;一&#xff09;记录坐标的网站1、奥维互动地图注册2、记录坐标3、如何导出坐标点到ArcGIS4、导航5、记录轨迹6、下载离线地图 &#xff08;二&#xff09;记录轨迹的软件&#xff08;三&#xff09;离线地图的下载&#xff08;四&#xff09;如何使用3D地…

Chapter5-消息队列的核心机制

Broker 是 RocketMQ 的核心&#xff0c;大部分‘重量级”工作都是由 Broker 完成的&#xff0c;包括接收 Producer 发过来的消息、处理 Consumer 的消费消息请求、&#xff0d;消息的持久化存储、消息的 HA 机制以及服务端过滤功能等。 5.1 消息存储和发送 分布式队列因为有高…

网络协议-TCP、IP协议和互联网协议群

目录 TCP/IP协议群简介&#xff08;互联网协议群&#xff09;&#xff08;Internet Protocol Suite&#xff09; 应用层&#xff08;Application&#xff09;(合并简化了展示层&#xff0c;会话层) 传输层&#xff08;Transport&#xff09; 网络层&#xff08;Internet&am…

射频功率放大器在铝板损伤量化表征中的应用

实验名称&#xff1a;基于异常指数的铝板损伤量化表征 研究方向&#xff1a;损伤量化 测试目的&#xff1a; 结构损伤检测与量化评估对于保障航空、航天、船舶、石油化工及兵器工业等领域的基础设施结构安全性具有重要意义&#xff0c;受到了广泛的关注。在现有的结构监测技术中…

微内核与宏内核

了解Linux发展史的同学都知道&#xff0c;关于linux吵架史的一段佳话&#xff0c;就是关于内核设计思想之争&#xff0c;这段故事在linus Tovalds的自传中也有提到。我们都知道linux操作系统由Linus Tovalds模仿minix操作系统开发的。 虽然Linux是受MINIX启发而发明&#xff0c…

Git——利用SSH密钥本地仓库上传远程GitHub库

文章目录 1、前言2、详细步骤2.1 创建密钥2.2 进入密钥文件并复制2.3 在GitHub上添加密钥2.4 回到本地仓库文件夹&#xff0c;连接GitHub并上传 3. 结语 1、前言 现在想要从本地设备将本地仓库上传到GitHub上需要用到SSH密钥&#xff0c;接下来讲解大致的步骤&#xff0c;本文默…

一本通 3.4.6 拓扑排序

1352&#xff1a;【例4-13】奖金 【题目描述】 由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出&#xff0c;Yali Company总经理Mr.Z心情好&#xff0c;决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。 于是Mr.Z下令召开m方会谈…

openEuler实验-基于openEuler的云景平台文件管理系统

一些常见的Linux命令 目录 前言 实验目的 实验内容 实验知识点 实验环境 实验分析 系统登录和电源管理 1&#xff09;使用login命令登录系统 2&#xff09;退出openEuler 3&#xff09;退出当前的shell 软件管理 1&#xff09;查询目录信息 2&#xff09;切换目录路…

基于Tensorflow搭建卷积神经网络CNN(服装分类)保姆及级教程

项目介绍 TensorFlow2.X 搭建卷积神经网络&#xff08;CNN&#xff09;&#xff0c;实现服装的分类识别。搭建的卷积神经网络是类似VGG的结构(卷积层与池化层反复堆叠&#xff0c;然后经过全连接层&#xff0c;最后用softmax映射为每个类别的概率&#xff0c;概率最大的即为识…