Pandas Dataframe问题转换列dtype

时间:2017-03-14 12:35:34

标签: python pandas dataframe

我有一个带有列的简单pandas数据框:

col = [['A']]
data = [[1.0],[2.3],[3.4]]
df = pd.DataFrame.from_records(data, columns=col)

这会创建一个包含np.float64类型列的数据框,这就是我想要的。

在此过程的后期,我想添加另一个string类型的列。

df['SOMETEXT'] = "SOME TEXT FOR ANALYSIS"

此列的dtype虽然是object的dtype,但我需要它为string类型。所以我做了以下几点:

df['SOMETEXT'] = df['SOMETEXT'].astype(str)

如果我再次查看dtype,我会为该列获得相同的dtype:object

我的工作流程中有一个dtype敏感的流程,我需要该列为string

有什么想法吗?

array = df.to_records(index=False) # convert to numpy array

数组上的dtypes仍带有object dtype,但列应为string

1 个答案:

答案 0 :(得分:3)

在pandas中,所有字符串都是object类型。我刚开始的时候也很困惑。

进入NumPy后,你可以施放字符串:

In [24]: array['SOMETEXT'].astype(str)
Out[24]: 
array(['SOME TEXT FOR ANALYSIS', 'SOME TEXT FOR ANALYSIS',
       'SOME TEXT FOR ANALYSIS'], 
      dtype='<U22')