rbindlist 等效于 python 中的 R 函数
rbindlist equivalent R's function in python
首先,我根据 num_vars 的长度创建空列表,并将每个循环的输出存储在一个列表中。
之后我想合并所有输出并将其转换为 pandas 数据框。
为此我们可以简单地使用 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
请任何人帮助我解决这个问题。
提前致谢。
我找到了解决问题的方法:
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 数据帧格式为我提供输出。
首先,我根据 num_vars 的长度创建空列表,并将每个循环的输出存储在一个列表中。 之后我想合并所有输出并将其转换为 pandas 数据框。
为此我们可以简单地使用 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
请任何人帮助我解决这个问题。
提前致谢。
我找到了解决问题的方法:
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 数据帧格式为我提供输出。