Python 熊猫群居繁殖奇怪的类型转换行为

Python 熊猫群居繁殖奇怪的类型转换行为,python,numpy,pandas,Python,Numpy,Pandas,我是一个长期的R用户,试图转换到Python。。。这一切都很顺利,直到我在框架上执行groupby功能时遇到了熊猫的一些奇怪的自动打字。我有一个熊猫数据帧,df,类似于以下内容: id date numresp 0 1943 2002-11-08 1 1 1943 2002-11-08 1 2 1943 2003-02-17 1 3 1943 2003-02-17 1 4 1943 2003-02-17

我是一个长期的R用户,试图转换到Python。。。这一切都很顺利,直到我在框架上执行
groupby
功能时遇到了熊猫的一些奇怪的自动打字。我有一个熊猫数据帧,
df
,类似于以下内容:

    id      date        numresp
0   1943    2002-11-08  1
1   1943    2002-11-08  1
2   1943    2003-02-17  1
3   1943    2003-02-17  1
4   1943    2003-02-17  1
我的目标是,对于每个唯一的
id
,我想知道
min
max
日期,以便以天为单位计算时间增量。我目前正在使用
pandas.groupby
计算最大和最小日期的数组:

max_dates = df.groupby('id').date.max().values
min_dates = df.groupby('id').date.min().values
这是最长日期的标题:

(array(['2009-08-19T19:00:00.000000000-0500',
        '2010-11-11T18:00:00.000000000-0600',
        '2009-03-22T19:00:00.000000000-0500', ...,
        '2010-06-09T19:00:00.000000000-0500',
        '2014-04-30T19:00:00.000000000-0500',
        '2009-01-05T18:00:00.000000000-0600'], dtype='datetime64[ns]')
array([  9.72604800e+17,   8.88883200e+17,   9.71395200e+17, ...,
         8.47065600e+17,   9.40809600e+17,   9.56016000e+17]))
这是
minu dates
的负责人:

(array(['2009-08-19T19:00:00.000000000-0500',
        '2010-11-11T18:00:00.000000000-0600',
        '2009-03-22T19:00:00.000000000-0500', ...,
        '2010-06-09T19:00:00.000000000-0500',
        '2014-04-30T19:00:00.000000000-0500',
        '2009-01-05T18:00:00.000000000-0600'], dtype='datetime64[ns]')
array([  9.72604800e+17,   8.88883200e+17,   9.71395200e+17, ...,
         8.47065600e+17,   9.40809600e+17,   9.56016000e+17]))
结果令人费解。。。
max\u dates
数组由
numpy.datetime64
类型组成,但
min\u dates
数组由
numpy.float64
类型组成:

>>> type(max_dates[0]), type(min_dates[0])
(numpy.datetime64, numpy.float64)
我知道
date
列是
datetime64
类型:

>>>df.dtypes
id                 object
date       datetime64[ns]
numresp             int64
dtype: object
然而,
groupby
函数仍然在传播这种奇怪的类型转换,但只适用于
minu日期
数组。。。我能够执行我希望的减法,但我仍然想知道为什么熊猫(或Numpy?)会导致我的一个数组从datetime开始被强制转换为float64

编辑:
  • 我的熊猫版本:0.16.2
  • 我的numpy版本:1.9.2

升级您的熊猫,这似乎不是0.17版本的问题?@AndyHayden,这是0.16.x版本的已知问题吗?不幸的是,我正在一个服务器上运行它,在那里我没有升级它的权限。。。如果这是一个已知的问题,我可能会提出商业案例,但如果不是,我想找到行为的根源。你能展示一下如何创建一些复制奇怪铸造行为的示例数据吗?