轻松了解Pandas DataFrame中dtype的后备类型的方法

时间:2019-04-30 19:51:59

标签: python pandas

比方说,我有一个复杂的数据框,其中包含许多dtypes的列,包括多种大小的类别。是否有一个快速的表达式可以为所有这些列提供backing(numpy)dtype?例如,这意味着对于分类列,它会输出 int8 int16 等内容,具体取决于引擎盖下使用的内容。

我已经知道数据框的.dtypes属性,但这并不能满足我的要求,因为它会为每个类别打印出category,而不是打印出可以反映以前类型的内容表示特定类别(可以为1、2或4个字节)。

例如,对于此数据框:

df = pd.DataFrame({'cat': pd.Categorical(['a', 'b', 'c'])})

我正在寻找的函数将输出一些内容,说明列 cat 最终在内存中由1个字节数字的数组表示。

编写执行此操作的函数并不难,但是也许有一种简单的单行方法来执行此操作(我找不到)。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用的所有列数据类型

dataframe.dtypes

import pandas as pd
df = pd.DataFrame({'A': [1,2,3], 'B': [True, False, False], 'C': ['a', 'b', 'c']})
print(df.dtypes)

A     int64                                                                                                                                                                                   
B      bool                                                                                                                                                                                   
C    object                                                                                                                                                                                   
dtype: object