将一分钟的列转换为小时和分钟python

时间:2018-07-27 21:52:00

标签: python pandas time-series

我在Pandas中有一个数据框,其中有一个以分钟为单位的名为“持续时间”的列。

我想获得一个新列,以小时:分钟(HH:MM)的形式给出持续时间。

4 个答案:

答案 0 :(得分:3)

假设您的DataFrame如下所示:

df = pd.DataFrame({'duration': [20, 10, 80, 120, 30, 190]})

pd.to_datetime strftime 一起使用:

pd.to_datetime(df.duration, unit='m').dt.strftime('%H:%M')

0    00:20
1    00:10
2    01:20
3    02:00
4    00:30
5    03:10
dtype: object

答案 1 :(得分:0)

我不熟悉Pandas,但是下面显示了从几分钟到几分钟和几小时进行转换的一般方法:

total_minutes = 374

# Get hours with floor division
hours = total_minutes // 60

# Get additional minutes with modulus
minutes = total_minutes % 60

# Create time as a string
time_string = "{}:{}".format(hours, minutes)

print(time_string) # Prints '6:14' in this example

您还可以使用divmod()来避免中间步骤:

time_string = "{}:{}".format(*divmod(total_minutes, 60))

这里,*允许format()接受divmod()返回的元组(包含两个整数)作为两个单独的参数。

答案 2 :(得分:0)

最好使用:

"%d:%02d"%(divmod(oggetto, 60))

这样8:1变成8:01

答案 3 :(得分:0)

如果持续时间大于 24:00 小时,您可以使用:

df.duration = df.duration.apply(lambda x: '{:02d}:{:02d}'.format(*divmod(x, 60)))

例如给定一个 df:

df = pd.DataFrame({'duration': [20, 10, 80, 120, 30, 190]})

应用运算符后我们得到:

  1. 00:20
  2. 00:10
  3. 01:20
  4. 02:00
  5. 00:30
  6. 03:10
  7. 40:40