Я нашел много ответов на этот вопрос, но не на то, что я хочу сделать конкретно. У меня много csv-файлов, несколько строк размером более 200 месяцев, всего ~ 70 Go данных, и я хотел бы преобразовать их в hdf5-файлы.
Я нашел способы которые создают большой фрейм данных и объединяют их все вместе, но мои данные слишком велики, чтобы поместиться в один фрейм данных, используя решение, показанное здесь. https://datascience.stackexchange.com/questions/53125/file-converter-from-csv-to-hdf5
Я пытаюсь сделать что-то вроде 1 кадра данных на файл и преобразовать их все в файлы hdf5, чтобы у меня было одинаковое количество файлов h5 и csv, но я не Я не знаю, что это правильное решение, так как я не думаю, что мой компьютер может хранить все это в памяти.
Что-то подобное я обнаружил в другом SO-потоке, чтобы поместить все csv в один кадр данных перед преобразованием:
from os import listdir
filepaths = [f for f in listdir("./data") if f.endswith('.csv')]
df = pd.concat(map(pd.read_csv, filepaths))
не работает, потому что слишком много файлов / слишком тяжелый.
Если вам известно о другом решении, пожалуйста, помогите,
Спасибо
РЕДАКТИРОВАТЬ :
Спасибо за ответы, похоже, работает с этим кодом:
for f in tqdm (listdir("E:\\Data\\Trades\\history")):
if f.endswith('.csv'):
pd.read_csv(f, 'rb').to_hdf('E:\\Data\\Trades\\hdf5_test.h5', key=f)
Но я получаю эту ошибку FileNotFoundError: [Errno 2] No such file or directory: 'trade_20141123.csv'
Это имя первого файла в списке.
Я также получаю это предупреждение в jupyter:
ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'.
pd.read_csv(f, 'rb').to_hdf('E:\\Data\\Trades\\hdf5_test.h5', key=f)
C:\Users\Sam\anaconda3\envs\vaex_env\lib\site-packages\tables\path.py:155: NaturalNameWarning: object name is not a valid Python identifier: 'trade_20141122.csv'; it does not match the pattern ``^[a-zA-Z_][a-zA-Z0-9_]*$``; you will not be able to use natural naming to access this object; using ``getattr()`` will still work, though
check_attribute_name(name)
Нужно ли переименовывать все файлы? Я не уверен, что это проблема, но если это проблема с каким персонажем?
Приветствия