我不知道是否应该说这是一件小事,但这一直困扰着我。 numpy.dtype打印格式不同的输出,一个不带print语句,另一个带print语句。这是一个示例:
train = pd.read_csv("train.csv")
In [10]: train.dtypes
Out[10]:
first_active_month object
card_id object
feature_1 int64
feature_2 int64
feature_3 int64
target float64
dtype: object
In [5]: train['card_id'].dtypes
Out[5]: dtype('O')
In [11]: print(train['card_id'].dtypes)
object
请查看最后两个命令的输出。当不使用'print'语句进行打印时,输出为'dtype('O')';当使用'print'语句进行打印时,输出为'object'。
我已阅读numpy.dtype手册,但找不到这两种不同输出格式的原因。此外,以下工作原理:
In [16]: train['card_id'].dtypes in ['object']
Out[16]: True
我将不胜感激。
答案 0 :(得分:2)
在REPL中评估表达式时,它将打印对象的repr
。当您使用print
函数时,它将首先尝试对象的str
,即,与定义类型的类的__repr__
和__str__
相对应的方法。>
所以尝试
print(repr(train['card_id'].dtypes))
print(str(train['card_id'].dtypes))
答案 1 :(得分:1)