我想从结果中删除“0 天”,同时能够使用格式化结果执行计算
0 0 天 00:27:00 1 0 天 01:22:00 2 0 天 00:52:00 3 0 天 01:04:00 4 0 天 00:07:00 名称:节奏格式,数据类型:timedelta64[ns]
这就是我所期望的结果:
00:27:00 01:22:00 00:52:00 01:04:00 00:07:00
并能够计算平均值,在本例中为 00:46
要计算 timedelta 列的平均值,同时格式化结果以排除“0 天”部分,您可以按照以下步骤操作:
将 timedelta 值转换为秒。这简化了平均值的计算。 计算这些秒的平均值。 将平均值转换回时间增量,然后将其格式化为仅显示时间部分。 这是使用 Pandas 实现此目的的 Python 代码片段:
import pandas as pd
# Assuming you have a DataFrame 'df' with a timedelta column named 'Tempo Formatado'
# Example DataFrame creation:
data = {'Tempo Formatado': pd.to_timedelta(['0 days 00:27:00', '0 days 01:22:00',
'0 days 00:52:00', '0 days 01:04:00',
'0 days 00:07:00'])}
df = pd.DataFrame(data)
# Convert the timedelta to seconds
df['seconds'] = df['Tempo Formatado'].dt.total_seconds()
# Calculate the average in seconds
average_seconds = df['seconds'].mean()
# Convert the average back to timedelta
average_timedelta = pd.to_timedelta(average_seconds, unit='s')
# Format the result to exclude 'days'
average_formatted = str(average_timedelta).split('days ')[-1].strip()
print("Average time:", average_formatted)
如果没有数据样本,就很难提供帮助,但我们假设您的列名为“时间”。然后:
df['numeric_time'] = df['time'].values.astype(np.int64)
pd.to_timedelta(df['numeric_time'].mean())