Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在循环中连接数据帧的速度非常慢_Python_Pandas_List_Dataframe_Loops - Fatal编程技术网

Python 在循环中连接数据帧的速度非常慢

Python 在循环中连接数据帧的速度非常慢,python,pandas,list,dataframe,loops,Python,Pandas,List,Dataframe,Loops,我通过在for循环中连接来构建一个“主”数据帧 listdf是连接到数据帧之前进行预处理的临时列表。 我面临的问题是,随着循环迭代次数的增加,构建数据帧的过程变得越来越慢 我在这里进行了研究,基于这个建议,构建一个列表并最终将其连接到一个数据帧要快得多 然而,这种方法不起作用 interimdf.append(listdf) df = pd.concat(interimdf) 我得到了这个错误 TypeError: cannot concatenate object of type '<

我通过在for循环中连接来构建一个“主”数据帧

listdf是连接到数据帧之前进行预处理的临时列表。 我面临的问题是,随着循环迭代次数的增加,构建数据帧的过程变得越来越慢

我在这里进行了研究,基于这个建议,构建一个列表并最终将其连接到一个数据帧要快得多

然而,这种方法不起作用

interimdf.append(listdf)
df = pd.concat(interimdf)
我得到了这个错误

TypeError: cannot concatenate object of type '<class 'list'>'; only Series and DataFrame objs are valid
TypeError:无法连接类型为“”的对象;只有Series和DataFrame OBJ有效

我如何解决这个问题。此外,还有另一种方法可以加快在循环中创建一个大数据帧的过程

您需要将数据帧附加到列表中,而不是数据作为列表

尝试:

然后在你的圈子之外

pd.concat(interimdf) 

listdf的类型是什么<代码>类型(listdf)若要使其工作,listdf必须由pd.Series或pd.DataFrame创建。它属于listdf类型。我不确定这是否适用于您,但请查看您在此处的帖子。试一下这个方法,它工作得非常好。
interimdf.append(pd.DataFrame(listdf))
。燃烧得很快。早些时候,我花了3-4个小时来运行这个循环,现在不到一秒钟就完成了。谢谢。我很高兴这对你有用。是的,我会记得“二次复制”问题。我提交了一份解决方案。
interimdf.append(pd.DataFrame(listdf))
pd.concat(interimdf)