首页 > 解决方案 > 将许多具有相同列的数据帧垂直堆叠在一起的最快方法是什么?

问题描述

假设我有一个包含 100 个具有相同列的数据框的列表。df.append()有没有比使用99 次更快的垂直堆叠它们的方法?类似于.join( )字符串列表的东西,也许?

import pandas as pd
import numpy as np
from random import randint

lst = [pd.DataFrame(np.empty([randint(1,10),3]), columns=["A","B","C"]) for i in range(100)]

DF = lst[0]

for i in range(1,100):
    DF = DF.append(lst[i])

标签: pythonpandasdataframeappend

解决方案


只需使用pd.concat

lst = [pd.DataFrame(np.empty([np.random.randint(1,10),3]), columns=["A","B","C"]) for i in range(100)]

pd.concat(lst)

==>
                A              B              C
0  -3.105036e+231 -3.105036e+231  1.086944e-322
1    0.000000e+00   0.000000e+00   0.000000e+00
2    0.000000e+00   0.000000e+00   0.000000e+00
3    0.000000e+00   0.000000e+00   0.000000e+00
4    0.000000e+00  1.023640e-308 -1.494581e-154
..            ...            ...            ...

推荐阅读