Я хочу ограничить размер столбца строки в магазине HDF. Вы должны сделать это с min_itemsize
. В документации говорится:
min_itemsize
Базовая реализация HDFStore использует фиксированную ширину столбца.
(itemsize) для строковых столбцов. Размер строки столбца рассчитывается
как максимальная длина данных (для этого столбца), которые передаются
в хранилище HDFS, в первом приложении. Последующие добавления, май
ввести строку для столбца больше, чем может содержать столбец,
Исключение будет повышено (в противном случае вы могли бы иметь тихое усечение
из этих столбцов, что приводит к потере информации). В будущем мы
может ослабить это и разрешить усечение, указанное пользователем.
Передайте min_itemsize при создании первой таблицы, чтобы априори указать
минимальная длина определенного строкового столбца. min_itemsize может быть
integer или dict, отображающий имя столбца в целое число. Вы
http://pandas.pydata.org/pandas-docs/stable/io.html#string-columns
Хорошо, поэтому, когда я делаю это, я получаю неожиданный результат. Я установил min_itemsize
на 1 здесь. Это должно установить все строковые столбцы на 1 символьную строку. Но это не тот случай. Зачем? Что я неправильно понимаю в документации?
store = pd.HDFStore('store.h5', mode='w', format='table', complevel=9,
complib='blosc:lz4')
values = [['a', 'b'], ['aa', 'bb'], ['aaa', 'bbb']]
columns = ['A', 'B']
data = pd.DataFrame(values, columns=columns)
store.append('df', data, min_itemsize=1)
print(store.df)
store.close()
A B
0 a b
1 aa bb
2 aaa bbb
Я ожидал, что упомянутое исключение и документация будут выданы.