我正在尝试以pandas.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 (last last call last) in () 1 i = 1 2 for pdj in pdi: ----> 3 fr.write_dataframe(pdj, 'C:/test' + str(i) + '.feather') 4 我 = 我 + 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 # 尝试确保资源已关闭
~\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:无法使用 dtype 字节序列化名为 SOME_ID 的列 0
我正在使用 Windows 7 和 Python 3.6。当我检查它时,大多数列的单元格都被包裹在b'cell_value'
其中,我假设这些列是二进制格式的。
我是一个完整的 Python 初学者,所以不明白问题出在哪里?