【问题标题】:timedelta object to float [duplicate]timedelta 对象浮动
【发布时间】:2020-01-22 21:05:55
【问题描述】:

您好,任何想法如何将 timedelta 对象转换为需要根据分钟或小时进行概括的 pandas 中的浮点数,即 00:06:46.221000 至 6.46 分钟或 01:06:76.341000 到 66.76 分钟

谢谢

【问题讨论】:

  • 与副本相同的想法,但用分钟,除以一分钟而不是一小时

标签: python pandas timedelta


【解决方案1】:

如果你使用的是 Python2.7/3.2 或更高版本,可以使用以下方法(其中 time_delta_obj 是你的 timedelta 对象):

time_minutes = time_delta_obj.total_seconds()/60.0

在 Python 3.2 或更高版本中,您可以简单地使用:

time_minutes = time_delta_obj/datetime.timedelta(minutes=1)

请参阅Python 3.2 - datetime and timetimedelta.total_seconds() 了解更多信息。

要将其应用于 pandas 数据框,请使用 apply():

def convert_to_minutes(time_delta_obj):
    return time_delta_obj.total_seconds()/60.0

def convert_to_minutes(time_delta_obj):
    return time_delta_obj/datetime.timedelta(minutes=1)

然后对于 df 的名为 'time_diff' 的列使用:

df['time_diff'] = df['time_diff'].apply(convert_to_minutes)

【讨论】:

  • 感谢您如何将其应用于熊猫系列 timedelta obj
  • @goerge:你把它除以Timedelta(minutes=1)
【解决方案2】:

您可以将SeriesTimedelta(minutes=1) 分开。确实:

>>> df
              col
0 00:06:46.221000
1 00:03:12.456000
2 00:02:07.123456
>>> df['col'] / pd.Timedelta(minutes=1)
0    6.770350
1    3.207600
2    2.118724
Name: col, dtype: float64

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2016-05-31
    • 2012-02-12
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多