比方说,我有一个复杂的数据框,其中包含许多dtypes的列,包括多种大小的类别。是否有一个快速的表达式可以为所有这些列提供backing(numpy)dtype?例如,这意味着对于分类列,它会输出 int8 , int16 等内容,具体取决于引擎盖下使用的内容。
我已经知道数据框的.dtypes
属性,但这并不能满足我的要求,因为它会为每个类别打印出category
,而不是打印出可以反映以前类型的内容表示特定类别(可以为1、2或4个字节)。
例如,对于此数据框:
df = pd.DataFrame({'cat': pd.Categorical(['a', 'b', 'c'])})
我正在寻找的函数将输出一些内容,说明列 cat 最终在内存中由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