首页
学习
活动
专区
工具
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类型的持续时间。

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

相关·内容

领券