python中的rbindlist等效R函数

时间:2018-09-04 09:48:09

标签: python pandas list concat

首先,我根据num_vars的长度创建空列表,并将每个循环的输出存储在一个列表中。 之后,我要合并所有输出并将其转换为熊猫数据框。

为此,我们可以简单地在R中使用rbindlist来组合列表对象。

为此,我使用了以下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 :(得分:2)

我找到了解决问题的方法:

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函数合并所有列表,因此它以熊猫数据帧格式提供了输出。