gpt4 book ai didi

Python Pandas Groupby 删除日期时间列

转载 作者:太空宇宙 更新时间:2023-11-03 18:12:18 25 4
gpt4 key购买 nike

我在包含间歇性 NaT 值的 DataFrame 上使用 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 的想法留在上面,但经过进一步审查,我的问题似乎实际上在于这些列是 timedelta64。有谁知道获取时间增量平均值/中位数的任何解决方法?

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

最佳答案

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

df['结束时间'] = df['结束时间'].astype('timedelta64[ms]')/86400000

可能有一个更优雅的解决方案,但这使我能够继续进行我的分析。

谢谢!

关于Python Pandas Groupby 删除日期时间列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25696025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com