Я унаследовал файл данных, сохраненный в формате Stata.dta. Я могу загрузить его с помощью функции scikits.statsmodels
genfromdta()
. Это помещает мои данные в одномерный массив NumPy, где каждая запись представляет собой строку данных, хранящихся в 24-кортеже.
In [2]: st_time = time.time(); initialload = sm.iolib.genfromdta("/home/myfile.dta"); ed_time = time.time(); print (ed_time - st_time)
666.523324013
In [3]: type(initialload)
Out[3]: numpy.ndarray
In [4]: initialload.shape
Out[4]: (4809584,)
In [5]: initialload[0]
Out[5]: (19901130.0, 289.0, 1990.0, 12.0, 19901231.0, 18.0, 40301000.0, 'GB', 18242.0, -2.368063, 1.0, 1.7783716290878204, 4379.355, 66.17669677734375, -999.0, -999.0, -0.60000002, -999.0, -999.0, -999.0, -999.0, -999.0, 0.2, 371.0)
Мне интересно, если есть эффективный способ организовать это в Pandas DataFrame. Из того, что я читал, построение DataFrame по строкам кажется довольно неэффективным... но каковы мои варианты?
Я написал довольно медленный первый проход, который просто читает каждый кортеж как однострочный DataFrame и добавляет его. Просто интересно, если что-то еще известно, что лучше.