2017-10-12 169 views
3

我試圖使用pandas.read_sas()以區塊形式讀取二進制壓縮的SAS文件,並將每個塊保存爲單獨的羽化文件。如何使用panda.read_sas以塊形式讀取二進制壓縮的SAS文件並將其保存爲羽毛

這是我的代碼

import feather as fr 
import pandas as pd 

pdi = pd.read_sas("C:/data/test.sas7bdat", chunksize = 100000, iterator = True) 

i = 1 
for pdj in pdi: 
    fr.write_dataframe(pdj, 'C:/data/test' + str(i) + '.feather') 
    i = i + 1 

不過,我得到以下錯誤

ValueError Traceback (most recent call last) in() 1 i = 1 2 for pdj in pdi: ----> 3 fr.write_dataframe(pdj, 'C:/test' + str(i) + '.feather') 4 i = i + 1 5

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pyarrow\feather.py in write_feather(df, dest) 116 writer = FeatherWriter(dest) 117 try: --> 118 writer.write(df) 119 except: 120 # Try to make sure the resource is closed

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pyarrow\feather.py in write(self, df) 94 95 elif inferred_type not in ['unicode', 'string']: ---> 96 raise ValueError(msg) 97 98 if not isinstance(name, six.string_types):

ValueError: cannot serialize column 0 named SOME_ID with dtype bytes

我使用Windows 7和Python 3.6。當我最檢查它時,列的單元格被包裝在b'cell_value'中,我假定這些列是二進制格式的。

我是一個完整的Python初學者,所以不明白是什麼問題?

+0

我對羽毛一無所知,但我會仔細檢查一下,在試圖寫出羽毛之前,您是否已成功從SAS轉換爲熊貓。將SAS讀入熊貓的能力相當不錯,但肯定能夠<100%的時間 – JohnE

+0

我可以寫成csv。所以一定要工作 – xiaodai

回答

相關問題