Let say I have below code:
import pandas as pd
import numpy as np
import random
import string
data = ['DF1', 'DF2', 'DF2']
for i in data :
DF = pd.DataFrame([random.choices(string.ascii_lowercase,k=5), [10, 11, 12, 13, 14]]).T
DF.columns = ['col1', 'col2']
DF['i'] = i
So for each i, I have different DF. Finally I need to merge all those data frames based on col1 and add numbers in col2 row-wise.
In this case, total number of such dataframes is based on length of data array, and therefore variable. In R we can use do.call() function to merge such varying number of data frames. In Python is there any way to achieve this?
For example, lets say we have 3 individual tables as below:
After joining based on col1, I expect below table (sorted based on col1)
Any pointer will be highly appreciated.



