繁体   English   中英

按时间分组 Delta Python Pandas

[英]Group By TimeDelta Python Pandas

我正在尝试在 Python 中进行分组。 我拥有的是一个有两列的数据框...名称和时差(时差)是一个 timedelta 变量,如下所示 -1 天 14:00:0000、0 天 00:08:0000 等。 名称中有重复项...看起来像 Brad、Amy、Brad、Brad、Bill、Amy....我想做的是按名称查找时差的平均值。 时差也确实有 NA 值。

我努力了

data_frame['NewMean'] = data_frame['TimeDifference'].values.astype(np.int64)

means = data_frame.groupby(data_frame['Name']).mean()

means['NewMean'] = pd.to_timedelta(means['NewMean']) 

但我不断收到 int() 的错误无效文字

我知道 float 可以解决这个问题,但我想创建一个新的 dataframe ,其中包含仅列出名称(没有重复)和每个名称的平均值的信息

尝试这个:

data_frame['TimeDifference'] = data_frame['TimeDifference'].dt.days
data_frame['mean'] = data_frame.groupby('Name')['TimeDifference'].mean()

有一种方法可以在不强制转换为 int 并忽略nannat值的情况下获取值,但涉及 lambda 表达式,结果是 timedelta 对象:

import numpy as np

time_groups = data_frame.groupby('Name').apply(
    lambda df: np.mean(df.TimeDifference)
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM