【发布时间】:2017-12-31 15:29:07
【问题描述】:
我需要一种自动化可靠的方法来查找 pandas 数据框中每一列的数据类型。我一直在使用 .dtype() 但注意到它有一些意想不到的东西。
考虑这 10 行数据框:
df['a']
Out[6]:
0 250.00
1 750.00
2 0.00
3 0.00
4 0.00
5 0.00
6 0.00
7 0.00
8 0.00
9 0.00
Name: a, dtype: object
type(df['a'][0])
Out[9]: decimal.Decimal
当每个条目都是小数时,为什么整个列的 dtype 都是“对象”?我真的需要它说十进制或浮点数或数字。任何帮助,将不胜感激!
【问题讨论】:
-
Decimal不是原则 numpydtype所以它表示为object但实际的单元格类型仍然是Decimal,这也是date和@987654328 发生的情况@objects 例如,这是正确的行为。如果您不需要小数精度,则可以使用float64。这个docs.scipy.org/doc/numpy/reference/arrays.scalars.html 演示了dytpe层次结构。偏爱受支持类型的原因是,将支持矢量化操作,但它们可能不适用于其他类型,即使它们很可能是数字的