我在包含間歇性NaT值的DataFrame上使用groupby.median()和groupby.mean()時遇到了一些麻煩。具體來說,我有一個數據集中的幾列來計算基於其他列的各種時間差異。在某些情況下,沒有時間存在差異,從而導致類似下面的例子在NAT值:Python Pandas Groupby刪除日期時間列
Group Category Start Time End Time Time Diff
A 1 08:00:00.000 08:00:00.500 .500
B 1 09:00:00.000 09:02:00.000 2:00.000
B 1 09:00:00.000 NaT NaT
A 2 09:00:00.000 09:02:00.000 2:00.000
A 2 09:00:00.000 09:01:00.000 1:00.000
A 2 08:00:00.000 08:00:01.500 1.500
任何時候,我跑df.groupby(['Group', 'Category'].median()
或.mean()
包含的NaT任何列從結果集中刪除。我試過fillna
,但NaT似乎仍然存在。作爲上下文的一個附加點,該腳本在舊版本的Anaconda Python(1.x)中正常工作。我最近能夠將我的工作計算機升級到2.0.1,此時此問題開始蔓延。
編輯:我會留下我對NaT上面的想法,如果他們是一個因素,但經過進一步的審查,似乎我的問題實際上在於這些列是timedelta64s。有沒有人知道任何解決方法來獲取timedeltas的平均數/中位數?
非常感謝您的任何見解!
你有什麼版本的熊貓? – joris 2014-09-06 08:34:42
@joris我有熊貓0.14.0。我確實想出了一個解決方法 - 請參閱下面的回覆。 – wrcobb 2014-09-06 15:28:39