【问题标题】:Why does describe().dtype and .dtype return different values in jupyter notebook为什么 describe().dtype 和 .dtype 在 jupyter notebook 中返回不同的值
【发布时间】:2020-07-20 05:17:26
【问题描述】:

我正在使用来自 kaggle 的 jupyter 笔记本,当我将它下载到我的本地机器时,它会因为一些奇怪的数据类型行为而中断。

train = pd.read_csv('../dataset/train.csv')


print(train["BsmtFinSF2"].dtype, train["BsmtFinSF2"].describe().dtype)
>>> ​int64 float64

谁能解释为什么这些值不同?

.csv 可用: https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data?select=train.csv

【问题讨论】:

  • 这有什么问题?
  • 我可以将 csv 读入 pandas 并运行 describe 没有任何问题。到底是什么问题?
  • 为什么它们应该相同? df.dtype 给出了df 的dtype,而df.describe().dtype 给出了一个新的数据框,其中包含计数、标准、平均值、最小值、25% 等可以是浮动的。
  • 在代码中发生了其他事情,我的一个变量在应该是整数时被分成几类——仍然没有弄清楚,但这不是问题,

标签: python-3.x pandas jupyter-notebook


【解决方案1】:

我会试着解释一下

lst=[1,2,3]

#creating a dataframe from above list
df=pd.DataFrame(lst)

df[0].dtype #will give int64 as the elements of the column are int

df.describe()  #or df[0].describe() will give details about it like mean ,count,std min ,max etc which can be float.

df[0].describe().dtype # will give float64 as I explained earlier(datatype of above quantities

同样,您有“train”数据框,并且正在探索“int”类型的“BsmtFinSF2”列,但 describe 方法给出“float64”,因为 describe 方法的详细信息可以是 float .

我想我用最简单的方式解释了

【讨论】:

  • 谢谢!我所以描述的 dtype 真的没用
  • 是的,但它显示的属性非常重要。继续前进!
【解决方案2】:

describe 计算平均值或标准差等统计数据,即使对于整数值数据,这些值也很可能是浮点值。

在学校,人们获得整数值的成绩,从 4 到 10。然而,他们描述他们在学校的成功,例如 8.76,这是一个浮动

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 2020-01-16
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多