我希望使用計數和總和的 agg 函式對以下資料幀進行分組,但還想獲得資料幀的 DateTimeIndex 之間的平均時間差(以分鐘為單位)。當我使用 df.index 時,我收到錯誤 TypeError: unhashable type: 'DatetimeIndex'
data = df.groupby('letter').agg({'letter': 'count', 'occurences' : 'sum', df.index: lambda x: x.diff().mean().dt.minutes})})
如果我用“時間戳”作為列重置索引。
data = df.reset_index().groupby('letter').agg({'letter': 'count', 'occurences' : 'sum', 'timestamp': lambda x: x.diff().mean().dt.minutes})})
我收到錯誤 AttributeError: 'NaTType' object has no attribute 'dt'。我相信這是因為字母“D”只有一個實體。我希望將其視為 0 分鐘。
timestamp letter occurences
2021-11-29 12:00:00 00:00 A 100
2021-11-29 12:30:00 00:00 B 500
2021-11-29 13:00:00 00:00 B 300
2021-11-30 13:30:00 00:00 A 1000
2021-11-30 14:00:00 00:00 C 250
2021-11-29 14:30:00 00:00 A 100
2021-11-29 15:00:00 00:00 D 500
2021-11-29 15:30:00 00:00 A 300
2021-11-30 16:00:00 00:00 A 1000
2021-11-30 16:30:00 00:00 C 250
uj5u.com熱心網友回復:
請嘗試 np.timedelta
data = df.reset_index().groupby('letter').agg({'letter': 'count', 'occurences' : 'sum', 'timestamp': lambda x: (x.diff().mean())/np.timedelta64(1, 'm')})
uj5u.com熱心網友回復:
您可以使用:
data = df.groupby('letter').agg(
{'letter': 'count',
'occurences' : 'sum',
'timestamp': lambda x: x.diff().mean().total_seconds()/60.0
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/397667.html
下一篇:在條件下填充熊貓細胞的有效方法
