【问题标题】:Convert data from months, days, hours, minutes, into just minutes?将数据从几个月、几天、几小时、几分钟转换成几分钟?
【发布时间】:2021-06-16 23:54:26
【问题描述】:

我有一个以月/日/小时/分钟为单位的 .csv 数据文件,我需要将其转换为几分钟。我可以很好地转换天数和小时数,但我正在努力将月份转换为分钟,因为它们不是标准长度。

这是我的数据快照,完整文件太大,无法在此处发布。

到目前为止,这是我的代码。它读取文件并从 Day、Hour 和 Minute 列中正确计算时间(以分钟为单位)。我想不出如何让它准确计算每个月的分钟数——我粗略的想法是定义一个月有多少天,然后从数据中读取它是哪个月,并将其用作交叉索引用月份长度变量引用它并将其乘以 1440(一天中的分钟数)。但是我不知道如何让 Python 做到这一点?

# 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
month_lengths = [0,31,28,31,30,31,30,31,31,30,31,30,31] # Always one month out of sync

time_data = ((data_file["Day"]-1)*1440) + (data_file["Hour"]*60) + data_file["Minute"]

【问题讨论】:

    标签: python date


    【解决方案1】:

    Python 在datetime module 中提供完整的日历支持。使用它。

    import datetime
    dt = datetime.datetime(data_file["Year"], data_file["Month"], data_file["Day"], data_file["Hour"] data_file["Minute"])
    delta = dt - datetime.datetime(data_file["Year"], 1, 1)
    time_data = delta.total_seconds() // 60
    

    这也具有自动调整闰年的优势。

    【讨论】:

    • 这给了我错误:raise TypeError(f"cannot convert the series to {converter}") TypeError: cannot convert the series to ?我需要先将我的数据转换成另一种格式吗?
    • @UnaDavies 我猜是这样。我想既然你已经对它们进行了数学运算,它们一开始就是整数。
    猜你喜欢
    • 1970-01-01
    • 2017-10-20
    • 2019-08-03
    • 2021-06-26
    • 2014-07-14
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多