我在包含间歇性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