我得到一个数据框,其数组'Time'为(11,0,0),我想将其转换为dataframe 11:00:00
有没有办法实现这个目标?
---------更新-------------
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给定)
答案 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)