如何将(11,0,0)转换为时间格式

时间:2017-09-12 17:38:08

标签: python

我得到一个数据框,其数组'Time'为(11,0,0),我想将其转换为dataframe 11:00:00 enter image description here

有没有办法实现这个目标?

---------更新-------------

import datetime as dt
length = len(df)
Time = []
DateTime = df['Time']
for n in range(0,length):
    Time.append(dt.time(*DateTime).strftime('%H-%M-%S'))
df['Time']=Time

错误:函数最多需要6个参数(4801给定)

1 个答案:

答案 0 :(得分:1)

一种方法是使用apply将转换应用于单个列。您可以将元组解压缩到datetime.time对象中,然后将其strftime恢复为您想要的格式。

import datetime as dt
import pandas as pd

data = {'A': [1, 2, 3], 'Time': [(11, 0, 0), (11, 0, 1), (15, 2, 3)]}

df = pd.DataFrame(data)

def return_time(input_tuple):
    return dt.time(*input_tuple).strftime('%H-%M-%S')

df['Time'] = df['Time'].apply(return_time)