每列包含哪种类型的对象:获取比dtypes更多的细节

时间:2014-02-27 11:36:35

标签: pandas

我经常发现自己在数据框的列中更改数据类型,在datetime和timedelta类型之间进行转换,或者字符串和时间等。所以我需要一种方法来检查每个列的数据类型。

df.dtypes适用于数字对象类型,但对于其他所有内容,只显示“对象”。那么我该如何找出什么样的物体?

1 个答案:

答案 0 :(得分:1)

您可以检查其中一个单元格以找到类型。

import pandas as pd
#assume some kind of string and int data
records = [["a",1], ["b",2]]
df = pd.DataFrame(records)
df.dtypes
>0    object
>1     int64
>dtype: object

所以pandas知道第1列是整数存储,但第0列显示为对象。

df[0].dtype
>dtype('O')

这仍然显示“对象”存储。

type(df[0][0])
>str

瞧。

当然,这取决于您的确切数据结构。如果你在列中的任何地方都有NaN,那么它有时会对转换后的类型造成严重破坏(因为它并不总是很清楚为什么它最终会成为对象存储)。