我想创建一个Series对象并指定dtype=np.str_
,但似乎Pandas忽略了该类型。
我尝试使用astype方法,但结果相同:
import pandas as pd
import numpy as np
s1 = pd.Series(["t1", "t2"], dtype=np.str_)
print(type(s1[0])) # <class 'str'>
print(type(s1.astype(np.str_)[0])) # <class 'str'>
字符串
如果我将其替换为dtype=np.bytes_
或使用代码pd.Series([np.str_("t1"), np.str_("t2")])
创建对象,它将按预期工作:
s2 = pd.Series(["t1", "t2"], dtype=np.bytes_)
s3 = pd.Series([np.str_("t1"), np.str_("t2")])
print(type(s2[0])) # <class 'numpy.bytes_'>
print(type(s3[0])) # <class 'numpy.str_'>
型
1条答案
按热度按时间m4pnthwp1#
对于您的问题,最直接的答案是
pandas
只支持以下文本类型:object
个pandas.StringDtype()
个这在用户指南中有明确说明
这就是为什么如果你传递
str
,它默认为object
:字符串
事实上,如果你仔细查看
astype
的pandas Package 器,你会在源代码中看到:型