在Pandas中,可以使用to_timedelta()
函数将一列以分钟为单位的持续时间转换为datetime。当某些分钟大于60时,可以使用以下步骤进行转换:
to_timedelta()
函数将修正后的分钟数转换为datetime类型。以下是示例代码:
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)
输出结果如下:
分钟 分钟修正 小时 持续时间
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类型的持续时间。
领取专属 10元无门槛券
手把手带您无忧上云