Pandas数据框的dtype属性

3

在调用pandas数据框的dtypes属性时,输出的最后一行通常是dtype: object。例如:

In [1]: import pandas as pd
In [2]: df = pd.DataFrame({'numbers':100,'floats': 5.75,'name':'Jill'},index=['a'])
In [3]: df.dtypes
Out[3]: 
numbers  int64
floats float64
name    object
dtype: object

在输出中,dtype: object 行指的是什么?
2个回答

2

pandas.DataFrame.dtypes 是一个 pd.Series 对象,这就是保存你的数据类型的 Series 的数据类型!

>>> type(df.dtypes)
<class 'pandas.core.series.Series'>

这是有道理的,因为它包含numpy.dtype对象:

>>> df.dtypes.map(type)
numbers    <class 'numpy.dtype'>
floats     <class 'numpy.dtype'>
name       <class 'numpy.dtype'>
dtype: object

1

object在这里指的是不是数字或混合数据类型: 这将包括字符串|列表|字典等

df = pd.DataFrame({'numbers':100,'floats': 5.75,'name':'Jill'},index=['a'])

df.applymap(type)
Out[7]: 
         numbers           floats           name
a  <class 'int'>  <class 'float'>  <class 'str'>

注意当列中混合数字和其他类型时,它仍然是对象。

df = pd.DataFrame({'Mix':[111,'notnumber']})
df.dtypes
Out[10]: 
Mix    object
dtype: object

然而,当我们检查每个单元格时,它会返回至少包含两种不同类型的单元格类型。
df.applymap(type)
Out[11]: 
             Mix
0  <class 'int'>
1  <class 'str'>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接