自動生成したデータフレームを　繰り返し繋ぎ合わせる方法について教えてください。


例えば、下記のように繰り返しランダムにデータフレームxを自動生成し、  
それを一つのデータフレームdfに自動的に繋げていく方法を教えてください。

[code]

    import pandas as pd
    import numpy as np
    
    i = 0
    arr = []
    for i in range(3):
        x = pd.DataFrame(np.random.rand(3))
        arr[i] = x
        df = merge([arr[0],arr[i]])
    
    print(df)
    
[/code]

* * *
[code]

    IndexError                                Traceback (most recent call last)
    <ipython-input-4-3499f5327871> in <module>()
          6 for i in range(3):
          7     x = pd.DataFrame(np.random.rand(3))
    ----> 8     arr[i] = x
          9     df = merge([arr[0],arr[i]])
         10 
    
    IndexError: list assignment index out of range
    
[/code]




**更新：** こちらの方が少しだけシンプルかも

[code]

    import pandas as pd
    import numpy as np
    
    arr = []
    for i in range(3):
      x = pd.DataFrame(np.random.rand(3))
      arr.append(x)
    
    df = pd.concat(arr, ignore_index=True)
    
    print(arr)
    print(df)
    
[/code]

* * *

こんな処理で出来ます。

[code]

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame()
    for i in range(3):
      x = pd.DataFrame(np.random.rand(3))
      df = pd.concat([df,x], ignore_index=True)
    
    print(df)
    
[/code]

* * *

ちなみに、後で何かに使うため個々の`DataFrame`も`arr[]`として残しておきたいと言った場合には、以下の様になります。

[code]

    import pandas as pd
    import numpy as np
    
    arr = []
    df = pd.DataFrame()
    for i in range(3):
      x = pd.DataFrame(np.random.rand(3))
      arr.append(x)
      df = pd.concat([df,x], ignore_index=True)
    
    print(arr)
    print(df)
    
[/code]

