首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pandas:当某些分钟大于60时,如何将一列以分钟为单位的持续时间转换为datetime?

在Pandas中,可以使用to_timedelta()函数将一列以分钟为单位的持续时间转换为datetime。当某些分钟大于60时,可以使用以下步骤进行转换:

  1. 首先,将分钟列转换为字符串类型,以便进行处理。
  2. 使用正则表达式将分钟列中大于60的部分提取出来。
  3. 将提取出来的部分转换为整数,并将其除以60得到小时数。
  4. 将小时数加回到分钟列中,得到修正后的分钟数。
  5. 使用to_timedelta()函数将修正后的分钟数转换为datetime类型。

以下是示例代码:

代码语言:txt
复制
import pandas as pd
import re

# 创建示例数据
data = {'分钟': ['60', '70', '80', '90']}
df = pd.DataFrame(data)

# 将分钟列转换为字符串类型
df['分钟'] = df['分钟'].astype(str)

# 使用正则表达式提取大于60的部分
pattern = r'(\d+)(?=\d{2}$)'
df['分钟修正'] = df['分钟'].str.extract(pattern)

# 将提取出来的部分转换为整数,并除以60得到小时数
df['小时'] = df['分钟修正'].astype(int) // 60

# 将小时数加回到分钟列中,得到修正后的分钟数
df['分钟修正'] = df['分钟修正'].astype(int) % 60
df['分钟修正'] = df['分钟修正'].astype(str).str.zfill(2)

# 将修正后的分钟数转换为datetime类型
df['持续时间'] = pd.to_timedelta(df['小时'].astype(str) + ':' + df['分钟修正'] + ':00')

# 打印结果
print(df)

输出结果如下:

代码语言:txt
复制
   分钟 分钟修正  小时     持续时间
0  60    00   1 01:00:00
1  70    10   1 01:10:00
2  80    20   1 01:20:00
3  90    30   1 01:30:00

在这个例子中,我们创建了一个包含分钟列的DataFrame。通过使用正则表达式,我们提取了大于60的部分,并将其转换为小时数。然后,我们将小时数加回到分钟列中,得到修正后的分钟数。最后,使用to_timedelta()函数将修正后的分钟数转换为datetime类型的持续时间。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

分析你的个人Netflix数据

将字符串转换为Pandas中的Datetime和Timedelta 我们两个时间相关列中的数据看起来确实正确,但是这些数据实际存储的格式是什么?...具体来说,我们需要做到以下几点: 将Start Time转换为datetime(pandas可以理解和执行计算的数据和时间格式) 将Start Time从UTC转换为本地时区 将持续时间转换为timedelta...(pandas可以理解并执行计算的持续时间格式) 所以,让我们按照这个顺序来处理这些任务,首先使用pandas将Start Time通过pd.to_datetime()转换为DateTime 我们还将添加可选参数...在我们的数据探索中,我们注意到当某些内容(如章节预览)在主页上自动播放时,它将被视为我们数据中的视图。 然而,只看两秒钟的预告片和真正看一部电视剧是不一样的!...因此,让我们进一步过滤friends数据帧,将Duration限制大于1分钟。这将有效地计算观看部分剧集的时间,同时过滤掉那些短的、不可避免的“预览”视图。

1.7K50

一场pandas与SQL的巅峰大战(三)

上面代码中的data是使用默认的参数读取的,在data.dtypes的结果中ts列是datetime64[ns]格式,而data2是显式指定了ts为日期列,因此data2的ts类型也是datetime[...日期转换 1.可读日期转换为unix时间戳 在pandas中,我找到的方法是先将datetime64[ns]转换为字符串,再调用time模块来实现,代码如下: ?...在pandas中,我们看一下如何将str_timestamp列转换为原来的ts列。这里依然采用time模块中的方法来实现。 ?...使用timedelta函数既可以实现天为单位的日期间隔,也可以按周,分钟,秒等进行计算。 在MySQL和Hive中有相应的日期间隔函数date_add,date_sub函数,但使用的格式略有差异。...在pandas中,如果事件类型是datetime64[ns]类型,直接作差就可以得出日期差,但是得到的数据后面还有一个"days"的单位,这其实就是上一小节提到的timedelta类型。

4.5K20
  • pandas时间处理

    pandas处理技巧-时间处理 记录pandas中关于时间的两个处理技巧 字符串类型和datatimens类型的转化 如何将时分秒类型的数据转成秒为单位的数据 字符串和时间格式转化 报错 import...pandas as pd from datetime import datetime import time 当我们导入包含日期数据的时候,有时候需要进行前期的处理,比如:读进来一份包含年月字段的数据...df.dtypes # datetime64[ns]类型数据 当查看数据字段信息的时候发现,发现它是datetime64[ns]类型。...目的是想获取年月信息,去掉最后的01,只取前面的年月,当直接使用split方法的时候,报错如下: ?...5、计算总共的时长(秒为单位) 需要将每个字符串的数据转成int类型,再进行处理 # 时长:分钟*60 + 秒 for i in range(len(df)): df.loc[i,"时长"]

    1.1K20

    Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均、可视化

    年9月30日06:00:00,2019年9月30日上午6:00 持续时间 两个瞬时之间的差异 2天,4小时,10秒 时间段 时间的分组 2019第3季度,一月 Python的Datetime模块 datetime...now = datetime.datetime.today() today = datetime.date.today() print(now) print(today) 创建持续时间 timedeltas...表示时间的持续时间。...Series.dt.tz_convert(self, *args, **kwargs) 将时区感知的Datetime Array/Index从一个时区转换为另一个时区。...增广迪基-富勒测试用于测试是否存在单位根。如果时间序列有单位根,则表示存在一些时间相关结构,即时间序列不是平稳的。 统计量越负值,时间序列越有可能是平稳的。

    67600

    Pandas学习笔记之时间序列总结

    [D]') 因为 NumPy 数组中所有元素都具有统一的datetime64类型,上面的向量化操作将会比我们使用 Python 的datetime对象高效许多,特别是当数组变得很大的情况下。...NumPy 可以自动从输入推断需要的时间精度(单位);如下面是天为单位: np.datetime64('2015-07-04') numpy.datetime64('2015-07-04') 下面是分钟为单位...对于时间差或持续时间,Pandas 提供了Timedelta类型。构建于numpy.timedelta64之上,是 Python 原生datetime.timedelta类型的高性能替代。...例如,下面创建一段以小时为间隔单位的时间范围: pd.date_range('2015-07-03', periods=8, freq='H') DatetimeIndex(['2015-07-03 00...-11', '2015-12', '2016-01', '2016-02'], dtype='period[M]', freq='M') 下面是以小时为单位的持续时间序列

    4.2K42

    在数据框架中创建计算列

    其正确的计算方法类似于Power Query,对整个列执行操作,而不是循环每一行。基本上,我们不会在pandas中循环一列,而是对整个列执行操作。这就是所谓的“矢量化”操作。...首先,我们需要知道该列中存储的数据类型,这可以通过检查列中的第一项来找到答案。 图4 很明显,该列包含的是字符串数据。 将该列转换为datetime对象,这是Python中日期和时间的标准数据类型。...pandas实际上提供了一种将字符串值转换为datetime数据类型的便捷方法。...df['成立时间'] =pd.to_datetime(df['成立时间']) 一旦列为datetime数据类型,计算持续时间就变得很容易了。我们将导入datetime库来处理日期和时间。...处理数据框架中NAN或Null值 当单元格为空时,pandas将自动为其指定NAN值。我们需要首先考虑这些值,因为在大多数情况下,pandas不知道如何处理它们。

    3.8K20

    基础教程:用Python提取出租车GPS数据中的OD行程信息

    本文为知乎网友的咨询,经同意后发布。 在本文中,我们将探讨如何使用Python和Pandas库来提取出租车行程数据。这个过程涉及到数据清洗、行程识别、以及行程信息提取等多个步骤。...每当检测到行程开始时,记录下起始时间和位置;当行程结束时,记录下结束时间和位置,并将这段行程的信息存储起来。...") trips_22396 3、进一步筛选数据 (1)筛选行程时间大于1分钟的数据 # 计算行程时间 trips['TripTime'] = (trips['EndTime'] - trips['StartTime...']).dt.total_seconds() / 60 # 分钟 # 选择行程时间大于等于1分钟的行程 trips = trips[trips['TripTime'] >= 1] len(trips)...这些信息不仅可以用于交通流量分析、城市规划等领域,也可以为出租车公司提供运营优化的依据。Python和Pandas库为数据处理和分析提供了强大的工具,使得从大规模数据中提取有用信息成为可能。

    77711

    【Python环境】Python中的结构化数据分析利器-Pandas简介

    这篇文章会介绍一些Pandas的基本知识,偷了些懒其中采用的例子大部分会来自官方的10分钟学Pandas。我会加上个人的理解,帮助大家记忆和学习。...或者以数据库进行类比,DataFrame中的每一行是一个记录,名称为Index的一个元素,而每一列则为一个字段,是这个记录的一个属性。...DataFrame转换为其他类型 df.to_dict(outtype='dict') outtype的参数为‘dict’、‘list’、‘series’和‘records’。...、B为行标签,以C为列标签将D列的值汇总求和pd.crosstab(rows = ['A', 'B'], cols = ['C'], values = 'D')#以A、B为行标签,以C为列标签将D列的值汇总求和...pandas提供to_datetime方法将代表时间的字符转化为Timestamp对象: s = '2013-09-16 21:00:00'ts = pd.to_datetime(s) 有时我们需要处理时区问题

    15.1K100

    时间序列

    (['2020-5-19','2020-5-20','2020-5-21','2020-5-22']) #创建一个以时间为行索引,数据从1到4的 DataFrame 表格型数据。...) ] #选取成交时间为2020-5-20以前的订单 df[df["成交时间"] datetime(2020,5,20) ] #选取成交时间为2020-5-20到2020-5-22之间的订单 df...Python中实现时间偏移的方式有两种: 第一种借助 timedelta(该对象包含天数、秒、微秒三个等级,所以只能偏移天数、秒、微秒单位的时间) 第二种是用Pandas中的日期偏移量(date offset...) (1)timedelta timedelta只支持 天、秒、微妙 单位的时间运算,若是其他单位的时间运算,则需要换算成天、秒、微妙三种单位的一种方可进行偏移。...1) #往后推10秒 date + timedelta(seconds = 10) (2)date offset date offset 可直接实现天、小时、分钟单位的时间偏移,不需要换算,相比timedelta

    2K10

    一文带你快速入门Python | 初识Pandas

    作者:吹牛Z 本文转自公众号:数据不吹牛 这是Python数据分析实战基础的第一篇内容,主要是和Pandas来个简单的邂逅。已经熟练掌握Pandas的同学,可以加快手速滑动浏览或者直接略过本文。...它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列,后面学习和用到的所有Pandas骚操作...2、 数值型 数值型数据,常见的操作是计算,分为与单个值的运算,长度相等列的运算。 以案例数据为例,源数据访客数我们是知道的,现在想把所有渠道的访客都加上10000,怎么操作呢? ?...以案例数据为例,我们这些渠道数据,是在2019年8月2日提取的,后面可能涉及到其他日期的渠道数据,所以需要加一列时间予以区分,在EXCEL中常用的时间格式是'2019-8-3'或者'2019/8/3',...在实际业务中,一些时候PANDAS会把文件中日期格式的字段读取为字符串格式,这里我们先把字符串'2019-8-3'赋值给新增的日期列,然后用to_datetime()函数将字符串类型转换成时间格式: ?

    1.3K01

    Pandas的datetime数据类型

    microseconds=546921) 将pandas中的数据转换成datetime 1.to_datetime函数 Timestamp是pandas用来替换python datetime.datetime...类型 某些场景下, (比如从csv文件中加载进来的数据), 日期时间的数据会被加载成object类型, 此时需要手动的把这个字段转换成日期时间类型 可以通过to_datetime方法把Date列转换为...这一列数据可以通过日期运算重建该列 疫情爆发的第一天(数据集中最早的一天)是2014-03-22。...closing_year # 2000,2 2001,4 2002,11 2003,3 2004,4 2007,3 2008,25 2009,140 2010,157 2011,92 基于日期数获取数据子集 先将第一列数据处理为...,可用于计时特定代码段) 总结: Pandas中,datetime64用来表示时间序列类型 时间序列类型的数据可以作为行索引,对应的数据类型是DatetimeIndex类型 datetime64类型可以做差

    14810

    Python批量处理Excel数据后,导入SQL Server

    ; 有一列数据需要进行日期格式转换。...导入包: import pandas as pd from datetime import date, timedelta, datetime import time import os from sqlalchemy...” 这个有一定难度,excel里直接转很简单,直接选中需要转的数据,然后在开始-数据格式栏选择短日期即可。...代码如下,首先将字符串按格式转变成日期类型数据,原数据为06/Jan/2022 12:27(数字日/英文月/数字年 数字小时:数字分钟),按日期格式化符号解释表中对应关系替换即可。...我的想法是,首先调用pandas的sort_values函数将所有数据根据日期列进行升序排序,然后,调用drop_duplicates函数指定按SOID列进行去重,并指定keep值为last,表示重复数据中保留最后一行数据

    4.7K30

    python数据处理和数据清洗

    ,进行修正,填补的工作的过程,就是数据的清洗; 我们想要去处理这些脏的数据,就要首先导入这个pandas模块,进行文件的读取,然后进行这个数据集的格式转换,把这个里面的数据类型,单位进行修改; 下面的这个是一个平台的会员开通情况数据集合...: 上面的这个就是我们要处理的数据大致情况,因为数据量很大,我们只截取出来这个里面的一小部分数据,简单的说明一下,这个表头的实际含义,分别是订单的编号,用户的id,价格(以分为单位),支付平台,支付渠道...,支付方式,交易时间,支付时间; 6.2时间序列转换 # 导入pandas模块,简称为pd import pandas as pd # 读取路径为"/Users/clean/视频会员订单数据源.csv...# 输出此时的df print(df) 上面做的工作就是在原来的表格的基础上面进行这个单位的修改,把原来以分为单位的数据转换为以元为单位,把这个订单的两个时间全部转换为时间格式:使用to_datatime...函数; 7.数据清洗 7.1快速浏览数据 我们上面已经完成了准备的工作,就是把这个相关的单位进行修正,和我们的这个时间序列的转换 下面我们使用这个info函数快速地浏览全部数据,确定每一列的数据的缺失情况

    10910

    Pandas案例精进 | 无数据记录的日期如何填充?

    这样不就可以出来我想要的结果了吗~ 说干就干,先来填充一个日期序列了来~ # 习惯性导入包 import pandas as pd import numpy as np import time,datetime...解决问题 如何将series 的object类型的日期改成日期格式呢? 将infer_datetime_format这个参数设置为True 就可以了,Pandas将会尝试转换为日期类型。...具体语法如下所示: df["日期"] = pd.to_datetime(df["日期"], infer_datetime_format=True) 另外,我还百度过设置errors 参数为 ='coerce...Pandas会遇到不能转换的数据就会赋值为NaN,但这个方法并不太适用于我这个需求。...['搜狗提交量'].fillna(0) df_new 这样就可以完成了,我每次需要十几分钟的工作。

    2.6K00

    Python报表自动化

    将单位字段放在透视表的行区域。 ? 当处理到单位字段时我们会发现,表中每一笔贷款都有三家网点进行业绩分成。我们需要将分成比例也考虑进去。所以透视表中的行区域及值区域不能简单的放入单位1和贷款金额。...这样计算分成贷款金额时就只需要将新表的贷款金额及合并成一列的分成比例进行相乘。得出每个分成比例对于的分成贷款金额,最后将分成贷款金额按照单位及用途进行数据透视。...这里我们通过判断日期是否为2019年(大于2018-12-31)返回TRUE/FALSE进行选择判断。这种利用判断条件来选择数据的方式叫布尔索引。...3.4数据追加合并 接下来我们需求是将三个分离的表进行纵向的拼接。在我们的例子中,需要将三个表的单位及分成比例字段追加在同一列。但是目前三个新表中的单位及分成比例字段名字是不一致的,不能直接追加。...而单位及分成比例只有2041行数据为非空。其他行为空值。根据业务逻辑可知,如果单位列数据为空,则一定不存在分成比例,即:分成比例也为空。那么该条记录就是无效的。因此可以直接将其删除。

    4.1K41
    领券