Lov*_*eow 3 python types pandas
我需要一种自动可靠的方法来查找 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
Run Code Online (Sandbox Code Playgroud)
当每个条目都是小数时,为什么整个列的 dtype 都是“对象”?我真的需要它来表示十进制或浮点数或数字。任何帮助,将不胜感激!
这不是错误,而是由于numpy dtype表示:https://docs.scipy.org/doc/numpy/reference/arrays.scalars.html。
基本上,由于Decimal不是原则内置类型,因此object即使每个单元格的实际类型仍然是Decimal.
建议在可能的情况下使用内置标量类型,在这种情况下float64,因为算术运算不太可能被向量化,即使类型很可能是数字。
当您存储str或datetime.date值时观察到同样的情况,dtypeobject用于这些。
| 归档时间: |
|
| 查看次数: |
831 次 |
| 最近记录: |