Как читать бинарные сжатые файлы SAS порциями, используя panda.read_sas, и сохранять как перо
Я пытаюсь использовать 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 (последний вызов был последним) в () 1 i = 1 2 для pdj в pdi: ----> 3 fr.write_dataframe(pdj, 'C:/test' + str(i) + '.feather') 4 я = я + 1 5
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pyarrow\feather.py в write_feather(df, dest) 116 writer = FeatherWriter(dest) 117 try: -> 118 writer.write(df) 119 кроме: 120 # Попробуйте убедиться, что ресурс закрыт
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pyarrow\feather.py в записи (self, df) 94 95 elif inferred_type не в ['unicode', 'string']: ---> 96 повышение ValueError(msg) 97 98, если не isinstance (name, six.string_types):
ValueError: невозможно сериализовать столбец 0 с именем SOME_ID с байтами dtype
Я использую Windows 7 и Python 3.6. Когда я проверяю его, большинство ячеек столбцов оборачиваются b'cell_value'
Я предполагаю, что столбцы в двоичном формате.
Я начинающий Python, так что не понимаю, в чем проблема?
1 ответ
Изменить: похоже, что это была ошибка, исправленная в недавней версии: https://issues.apache.org/jira/browse/ARROW-1672 https://github.com/apache/arrow/commit/238881fae8530a1ae994eb0e283e4783d3dd2855
Являются ли имена столбцов строками? Вы уверены, что pdj имеет тип pd.DataFrame?
Ограничения
Некоторые функции панд не поддерживаются в Feather:
Нестрочные имена столбцов
Строковые индексы
Столбцы объектного типа с неоднородными данными