Python 总和';浮动64';返回float而不是numpy.float64中的列类型

Python 总和';浮动64';返回float而不是numpy.float64中的列类型,python,pandas,numpy,Python,Pandas,Numpy,我有一个熊猫的数据框。我将数据帧的一列之和作为: x = data['col1'].sum(axis=0) print(type(x)) 我已经检查了datadataframe中的col1列是否为float64类型。但是x的类型是。我希望x的类型是numpy.float64 我在这里错过了什么 pandas版本--'0.18.0',numpy版本--'1.10.4',python版本--3.5.2这似乎来自pandas处理NAN的方式。当我在sum方法中设置skipna=False时,我得到n

我有一个熊猫的数据框。我将数据帧的一列之和作为:

x = data['col1'].sum(axis=0)
print(type(x))
我已经检查了
data
dataframe中的
col1
列是否为
float64
类型。但是
x
的类型是
。我希望
x
的类型是
numpy.float64

我在这里错过了什么


pandas版本--'0.18.0',numpy版本--'1.10.4',python版本--3.5.2

这似乎来自pandas处理NAN的方式。当我在
sum
方法中设置
skipna=False
时,我得到
numpy
数据类型

import pandas as pd
import numpy as np

type(pd.DataFrame({'col1':[.1,.2,.3,.4]}).col1.sum(skipna=True))
#float

type(pd.DataFrame({'col1':[.1,.2,.3,.4]}).col1.sum(skipna=False))
#numpy.float64
sum
方法正在从
pandas/core/nanops.py
调用
nansum
,这将产生相同的行为

from pandas.core.nanops import nansum

type(sum(np.arange(10.0)))
# numpy.float64

type(nansum(np.arange(10.0)))
# float

为什么
nansum
正在从
numpy.float64
转换为
float
,我无法告诉你。我已经看过了nansum的源代码,但它本身调用的函数似乎都没有产生这种变化。

无法复制,您需要发布原始数据和复制这种变化的代码,我观察到数据类型在使用pandas 0.18.1和numpy 1.11.1时始终保持
np.float64
。我可以复制它:
类型(pd.DataFrame({'col1':[.1,2,3,4]}).col1.sum())
-pandas 0.18.1,numpy 1.11.1,Python 3.5.1是您的Python二进制文件32位还是64位?我可以用@MaxU在64位Python安装上发布的代码重现错误。您可以指定您的版本吗?我得到了这两个的
np.float64
。我怀疑一个bug报告可能是正确的,但我想知道区别在哪里;numpy 1.11.0;python 3.5.1;Ubuntu 14.04当
skipna
True
时,pandas将尝试使用
瓶颈.nansum()
,当
False
时,pandas调用
numpy.sum()
。如果未安装
瓶颈
,则两者都使用
numpy
功能。