Я пытаюсь преобразовать фрейм данных R в python, используя rpy2
with localconverter(ro.default_converter + pandas2ri.converter):
smogned = ro.conversion.rpy2py(smogned)
print('after pandas2ri')
print(type(smogned))
print(smogned.shape)
print(smogned.dtype)
, что дает мне следующее
after pandas2ri
<class 'numpy.recarray'>
(7412,)
(numpy.record, [('WS', '<f8'), ('WS_1', '<f8'), ('WS_2', '<f8'), ('WS_3', '<f8'), ('WS_4', '<f8'), ('WS_5', '<f8'), ('RH', '<f8'), ('RH_1', '<f8'), ('RH_2', '<f8'), ('RH_3', '<f8'), ('RH_4', '<f8'), ('RH_5', '<f8'), ('TA', '<f8'), ('TA_1', '<f8'), ('TA_2', '<f8'), ('TA_3', '<f8'), ('TA_4', '<f8'), ('TA_5', '<f8'), ('gridMET_ETr', '<f8'), ('Site_Id_1', '<f8'), ('Site_Id_2', '<f8'), ('Site_Id_3', '<f8'), ('Site_Id_4', '<f8'), ('Site_Id_5', '<f8'), ('Site_Id_6', '<f8'), ('Vegetation_1', '<f8'), ('Vegetation_2', '<f8'), ('Vegetation_3', '<f8'), ('Month_1', '<f8'), ('Month_2', '<f8'), ('Month_3', '<f8'), ('Month_4', '<f8'), ('LE_bowen_corr_mm_', '<f8')])
Также важно отметить, что мои данные имеют 33 столбца, в то время как возвращенный имеет форму (7412,)
. Что я должен сделать, чтобы сделать это pandas фрейм данных ?? Кроме того, я sh может напрямую возвращать фрейм данных как pandas, потому что я не хочу в конечном итоге преобразовывать массив данных в массив numpy и массив numpy в pandas, потому что когда вы делаете
pd.DataFrame(data=yourdata, columns=[...])
Вы должны указать столбцы в том же порядке. Мне возвращены столбцы данных smogned
, и я не могу сейчас это контролировать
Информация
- numpy версия 1.16.4
- pandas версия 0.20.3
- rpy2 версия 3.2.6