pandas .HDFStore.keys () возвращает пустой список, если ключ был создан во время выполнения после применения pandas .DataFrame.to_hdf () - PullRequest
0 голосов
/ 23 апреля 2020

Я использую hdf5-файл в качестве базы данных для моего python приложения. Во время выполнения приложения я записываю pandas DataFrames в hdf5-файл и хотел бы позже прочитать их обратно в приложение. Я считаю, что список ключей, предоставленный pandas .HDFStore.keys (), не будет обновлен. Может быть, писать и читать снова это плохой дизайн?

Python 3.6.4, pandas 1.0.3, таблицы 3.6.1

hdf5_file = pd.HDFStore(r'C:\test\data.h5','a')
df=pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})
key='/group1/test'
df.to_hdf(hdf5_file,key=key,format='table', data_columns=True, append=True)

Теперь я пытаюсь читать этот DataFrame обратно в приложение. Прежде я проверяю, существует ли ключ.

if key in hdf5_file.keys():
    df = hdf5_file.get(key)
else:
    df = None

print(type(df))
<class 'NoneType'>

Если я получу доступ к данным только с помощью функции get (), будет возвращен DataFrame. У меня есть ситуации, когда ключ не существует. Поэтому я использовал этот подход. Было бы лучше сделать следующее или существует функция обновления для HDFStore?

try:
    df = hdf5_file.get(key)
except KeyError:
    df = None

print(type(df))
<class 'pandas.core.frame.DataFrame'>
...