2015-05-07 82 views
0

我想保存數據框DF的.h5文件MainDataFile.h5:str()和astype(str)之間的區別?

df.to_hdf ("c:/Temp/MainDataFile.h5", "MainData", mode = "w", format = "table", data_columns=['_FirstDayOfPeriod','Category','ChannelId']) 

,並出現以下錯誤:

***例外:無法找到正確的原子類型 - > > [dtype->對象,物品─>指數([ 'Libellé_Article', 'Libellé_segment'],D型細胞= '對象')]

如果我modifify以這種方式列 'Libellé_Article':

df['Libellé_Article'] = str(df['Libellé_Article']) 

沒有錯誤了,而我在做的時候仍然得到錯誤信息:

df['Libellé_Article'] = df['Libellé_Article'].astype(str) 

的問題是使用STR()是吹我的內存。

有什麼想法?

+0

我投票關閉此作爲無題的問題,因爲它是一個沒有格式化的無稽之談。 – rightfold

+2

格式化是可修復的(完成)。但是,問題仍然不清楚。你能重新表述它來包含一個實際的問題嗎?謝謝! –

+0

對不起我的瀏覽器發出這個問題之前,我寫完了 –

回答

2

str(df['Libellé_Article'])會將整列的內容轉換爲單個字符串。它將以非常大的字符串結束。和多數民衆贊成炸掉你的RAM

例如原因

>> df = pd.DataFrame([1,2,3], columns=['A']) 
>> df['A'] 
0 1 
1 2 
2 3 
Name: A, dtype: int64 

>> str(df['A']) 
'0 1\n1 2\n2 3\nName: A, dtype: int64' 
>> df['A'].astype(str) 
0 1 
1 2 
2 3 
Name: A, dtype: object 

所以,你應該只使用.astype(str),如果你想你的整個列轉換爲string類型

+0

謝謝Kathirmani,你是完全正確的!所以這個問題仍然是爲什麼當我應用'.type(str)'時出現錯誤信息。我懷疑'Libellé_Article'專欄中有一個特殊字符,但目前還找不到。 –

+0

爲此,請發佈一些示例數據,以便我可以在本地機器上嘗試 –

相關問題