str和对象类型之间的熊猫区别

str和对象类型之间的熊猫区别,第1张

str和对象类型之间的熊猫区别

Numpy的字符串dtypes不是python字符串。

因此,

pandas
故意使用本机python字符串,这需要对象dtype。

首先,让我演示一下numpy的字符串与众不同的含义:

In [1]: import numpy as npIn [2]: x = np.array(['Testing', 'a', 'string'], dtype='|S7')In [3]: y = np.array(['Testing', 'a', 'string'], dtype=object)

现在,“ x”是

numpy
字符串dtype(固定宽度,类似c的字符串),并且
y
是本机python字符串的数组。

如果我们尝试超过7个字符,我们会立即发现差异。字符串dtype版本将被截断:

In [4]: x[1] = 'a really really really long'In [5]: xOut[5]:array(['Testing', 'a reall', 'string'],      dtype='|S7')

虽然对象dtype版本可以是任意长度:

In [6]: y[1] = 'a really really really long'In [7]: yOut[7]: array(['Testing', 'a really really really long', 'string'], dtype=object)

接下来,

|S
尽管也有unipre定长字符串dtype,但dtype字符串无法正确保存unipre。现在,我将跳过一个示例。

最后,numpy的字符串实际上是可变的,而Python字符串则不是。例如:

In [8]: z = x.view(np.uint8)In [9]: z += 1In [10]: xOut[10]:array(['Uftujoh', 'b!sfbmm', 'tusjohx01'],      dtype='|S7')

由于所有这些原因,

pandas
选择不再允许类似C的固定长度字符串作为数据类型。如您所知,尝试将python字符串强制转换为numpy固定字符串将无法在中运行
pandas
。相反,它始终使用本机python字符串,对于大多数用户而言,它们的行为更为直观。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5644539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存