Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python通过删除DateTime列来实现_Python_Datetime_Pandas_Nat - Fatal编程技术网

Python通过删除DateTime列来实现

Python通过删除DateTime列来实现,python,datetime,pandas,nat,Python,Datetime,Pandas,Nat,在包含间歇NaT值的数据帧上使用groupby.median()和groupby.mean()时遇到一些问题。具体来说,我在一个数据集中有几个列,根据其他列计算各种时间差。在某些情况下,不存在时间差,导致NaT值与以下示例类似: Group Category Start Time End Time Time Diff A 1 08:00:00.000 08:00:00.500 .500 B 1

在包含间歇NaT值的数据帧上使用groupby.median()和groupby.mean()时遇到一些问题。具体来说,我在一个数据集中有几个列,根据其他列计算各种时间差。在某些情况下,不存在时间差,导致NaT值与以下示例类似:

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是一个因素,我会把我对NaT的想法放在上面,但经过进一步审查,我的问题实际上在于这些列是timedelta64s。有人知道获得TimeDelta平均值/中值的任何解决方法吗


非常感谢您提供的任何见解!

在进一步的谷歌搜索/实验之后,我确认问题似乎与
timedelta64
列有关。为了对这些列执行
pd.groupby
,我首先将它们转换为浮点数,如下所示:

df['End Time']=df['End Time'].astype('timedelta64[ms]')/86400000

也许有一个更优雅的解决方案,但这让我能够继续我的分析


谢谢!

您有什么版本的熊猫?@joris我有熊猫0.14.0。我确实想出了一个解决办法-请参阅下面的回复。这确实是熊猫的当前限制,有一个问题需要解决(),希望它将进入版本0。15@joris太好了,谢谢你传递链接。我会关注这个问题。非常感谢