rbindlist эквивалентная функция R в python - PullRequest
0 голосов
/ 04 сентября 2018

Сначала я создаю пустые списки на основе длины num_vars и сохраняю выходные данные каждого цикла в одном списке. После этого я хочу объединить все выходные данные и преобразовать их в фрейм данных панд.

для этого мы можем просто использовать rbindlist в R, чтобы объединить объекты списка.

для этого я использовал следующий код Python.

ests_list=[[] for i in range(num_vars)]

for i in list(range(0,num_vars)):
    for j in list(range(1,num_vars+1))
        ests_list[i]=pd.merge(df1,
                              df2,
                              how='left',
                              on=eval('combine%s'%j+'_lvl'))

pd.concat(ests_list)

когда я попробовал приведенный выше синтаксис, он выдает следующую ошибку:

TypeError: cannot concatenate object of type "<class 'list'>"; only 
pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid

Пожалуйста, кто-нибудь может помочь мне решить эту проблему.

Заранее спасибо.

1 Ответ

0 голосов
/ 05 сентября 2018

Я нашел решение для моей проблемы:

ests_list=[]
for i in list(range(1,num_vars)):
    ests_list.append(df1.merge(df2,how='left',on=eval("combine%s"%i+"_lvl")))
pd.concat(ests_list)

Я создаю пустой список и добавляю в него каждый вывод цикла.

Затем я объединяю весь список с помощью функции pd.concat, поэтому она дает мне вывод в формате фрейма данных pandas.

...