[英]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.