如何将数据框中的timedelta转换为datetime

问题描述 投票:0回答:1

我在 df 中有几列平均时间,例如“0 days 00:00:21”。我想将所有列转换为 datetime.time 格式“hh:mm:ss”,不带“0 天”。我该怎么做?

python dataframe datetime timedelta
1个回答
0
投票

不确定你的数据是如何存储的..但你可以尝试这样的事情:

# Example DataFrame
data = {'time1': ['0 days 00:00:21', '0 days 00:01:15', '0 days 00:02:45'],
        'time2': ['0 days 00:00:35', '0 days 00:00:50', '0 days 00:03:10']}
df = pd.DataFrame(data)

# Convert columns to timedelta objects
df[['time1', 'time2']] = df[['time1', 'time2']].apply(pd.to_timedelta)

# Extract time component and convert to string
df[['time1', 'time2']] = df[['time1', 'time2']].applymap(lambda x: x.seconds)

# Convert seconds to hh:mm:ss format
df[['time1', 'time2']] = df[['time1', 'time2']].applymap(lambda x: pd.to_datetime(x, unit='s').time())

print(df)`
© www.soinside.com 2019 - 2024. All rights reserved.