astype不适用于Pandas数据帧

时间:2015-08-22 04:04:20

标签: python pandas dataframe

我有一个称为消息的数据框,数据看起来像

message             length  class
hello, Come here      16     A
hi, how are you       15     A 
what is it            10     B
maybe tomorrow        14     A

当我做的时候

messages.dtypes

它告诉我

class      object
message    object
Length      int64
dtype: object

然后我尝试将消息列转换为字符串类型

messages['message'] = messages['message'].astype(str)
print messages.dtypes

它仍然显示我

class      object
message    object
Length      int64
dtype: object

我做错了什么。为什么它不能转换为字符串?

Python版本2.7.9在Windows 10上 熊猫版本0.15.2

1 个答案:

答案 0 :(得分:2)

没有“string”数据类型。在pandas中,字符串存储为对象。

在numpy中,你可以有字符串数据类型,但它们是固定长度的,所以仍然没有“字符串数据类型”。有5个字符的字符串的数据类型,10个字符的字符串的数据类型等,但是“字符串”本身没有数据类型。 Pandas使用object作为字符串的数据类型,以便您可以对字符串执行大小更改操作(例如,将它们与其他字符串连接),而无需使用新的字符串长度重新创建整个列。