You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python将月、日、时、分格式的时间数据转换为分钟单位

实现方法

方法一:按预设月份天数计算

你之前定义的month_lengths数组逻辑是对的,只需要先计算每个月之前所有月份的累计天数,再和月份列映射换算即可,完整代码修改如下:

# Import packages
import pandas as pd

# Open  data file
data_file_name = "data_file.csv"
data_file = pd.read_csv(data_file_name, header=2)

# Extract DHI solar data
solar_data = data_file["DHI"]

# Extract time points
# Define number of days in each month,闰年请把2月对应值改为29
month_lengths = [0,31,28,31,30,31,30,31,31,30,31,30,31]

# 计算前缀和:prefix_days[m]代表前m个月的总天数,比如prefix_days[1]=31(1月总天数)
prefix_days = [0]
current_total = 0
for days in month_lengths[1:]:
    current_total += days
    prefix_days.append(current_total)

# 月份对应的贡献分钟数:当前月份之前的总天数 * 1440
month_contribution = data_file["Month"].map(lambda x: prefix_days[x-1]) * 1440

# 总分钟数=月份贡献+日时分贡献
time_data = month_contribution + ((data_file["Day"]-1)*1440) + (data_file["Hour"]*60) + data_file["Minute"]

方法二:自动识别闰年(更推荐)

如果你的数据包含年份列,或者你知道数据对应的具体年份,可以直接用pandas内置的时间转换功能,自动处理闰年,不需要手动维护月份天数:

import pandas as pd

data_file_name = "data_file.csv"
data_file = pd.read_csv(data_file_name, header=2)
solar_data = data_file["DHI"]

# 替换下面的2023为你数据实际对应的年份,如果有Year列就改成data_file["Year"]
data_file["year"] = 2023

# 拼接为完整时间列
data_file["full_time"] = pd.to_datetime(data_file[["year", "Month", "Day", "Hour", "Minute"]])

# 计算和当年1月1日0点的差值,转为总分钟数
year_start = pd.to_datetime(f"{data_file['year'].iloc[0]}-01-01 00:00:00")
time_data = (data_file["full_time"] - year_start).dt.total_seconds() // 60

内容的提问来源于stack exchange,提问作者MUD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 06:06:03