簡體   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