2016-11-11 4 views
0

У меня есть такой алгоритм, который работает с объектом CSV файлКак читать h5 файл как CSV файл

#diplay_id, ad_id, clicked(1 or 0) 
colls = {'display_id':np.int32, 
     'ad_id':np.int32, 
     'clicked':bool} 
trainData = pd.read_csv("trainData.csv") 

for did, ad, c in trainData.itertuples(): 
    print did + ad + C#example 

Но теперь у меня есть файл».h5' , и я хочу, чтобы использовать его как в алгоритм. И я читаю файл, как в следующем;

store = pd.HDFStore('data.h5') 

Но, как я знаю, HDFStore возвращает np-массивы. Есть ли у вас идея использовать файл данных в алгоритме?

+0

Пробовали ли вы 'pd.read_hdf'? – EdChum

+0

Нет, теперь я смотрю документацию – eneski

+0

Проблема в том, что я точно не знаю имена столбцов. У вас есть идея? и я редактировал вопрос, показывая, как я читаю столбцы – eneski

ответ

0

Главное отличие в этом случае состоит в том, что файлы HDF5 могут содержать несколько DF/таблиц, поэтому вам всегда нужно указать ключ (идентификатор).

Вот небольшая демонстрация:

In [14]: fn = r'C:\Temp\test_str.h5' 

In [15]: store = pd.HDFStore(fn) 

In [16]: store 
Out[16]: 
<class 'pandas.io.pytables.HDFStore'> 
File path: C:\Temp\test_str.h5 
/test   frame_table (typ->appendable,nrows->10000,ncols->4,indexers->[index],dc->[a,c]) 

В этом случае только один DF (ключ = /test) хранится в этом файле HDF5.

Предполагая, что все ваши hdf5 файлы имеют только один DF (один ключ на один файл), вы можете обработать их динамически, выбирая первый ключ:

In [17]: store.keys() 
Out[17]: ['/test'] 

In [18]: key = store.keys()[0] 

In [19]: key 
Out[19]: '/test' 

In [20]: store[key].head() 
Out[20]: 
     a  b  c            txt 
0 689347 129498 770470 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... 
1 954132 97912 783288 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... 
2 40548 938326 861212 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... 
3 869895 39293 242473 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... 
4 938918 487643 362942 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... 
Смежные вопросы