[英]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 并忽略nan
或nat
值的情况下获取值,但涉及 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.