2012-07-26 122 views
1

我試圖使用函數astype來轉換DataFrame的類型,其方式與在NumPy中使用的方式相同。熊貓DataFrame類型轉換

首先在與NumPy:

In [175]: x = np.rec.array([('a','1'),('b','2')],names='col1,col2') 

In [176]: x 
Out[176]: 
rec.array([('a', '1'), ('b', '2')], 
    dtype=[('col1', '|S1'), ('col2', '|S1')]) 

In [177]: dt=[('col1', '|S1'), ('col2', 'i8')] 

In [178]: x.astype(dt) 
Out[178]: 
rec.array([('a', 1), ('b', 2)], 
    dtype=[('col1', '|S1'), ('col2', '<i8')]) 
在大熊貓

然後:

In [182]: y = DataFrame([('a','1'),('b','2')], columns=['col1','col2']) 

In [183]: y 
Out[183]: 
    col1 col2 
0 a 1 
1 b 2 

In [184]: y.astype(dt) 
Out[184]: --------------------------------------------------------------------------- 
NotImplementedError      Traceback (most recent call last) 
... 
NotImplementedError: Not implemented for this type 

我用熊貓0.7.3並從大熊貓0.7.0的文件在http://pandas.sourceforge.net/generated/pandas.DataFrame.astype.html。怎麼了?

回答

2

DataFrame不是結構化數組,因此在數據類型方面功能不同。根據我的知識,沒有任何API等同於您在此處顯示的記錄陣列操作。

+0

好的,所以如果我想轉換DataFrame中的列的類型,我將它們逐列轉換? – capitrane 2012-07-27 10:37:53