我经常发现自己在数据框的列中更改数据类型,在datetime和timedelta类型之间进行转换,或者字符串和时间等。所以我需要一种方法来检查每个列的数据类型。
df.dtypes适用于数字对象类型,但对于其他所有内容,只显示“对象”。那么我该如何找出什么样的物体?
答案 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,那么它有时会对转换后的类型造成严重破坏(因为它并不总是很清楚为什么它最终会成为对象存储)。