Fusionar una lista de marcos de datos de pandas

Ha habido muchas preguntas similares pero ninguna específicamente a esto.

Tengo una lista de marcos de datos y debo combinarlos usando una columna única (date) . Los nombres de los campos son diferentes por lo que concat está fuera.

Puedo usar manualmente df[0].merge(df[1],on='Date').merge(df[3],on='Date) etc. para combinar cada df uno por uno, pero el problema es que el número de cuadros de datos en la lista difiere con la entrada del usuario.

¿Hay alguna forma de fusionar que combine todos los marcos de datos en una lista de una sola vez? O tal vez algunos de en bucle hace eso?

Estoy usando Python 2.7.

Puede usar reduce función de reduce donde dfList es su lista de marcos de datos:

 import pandas as pd reduce(lambda x, y: pd.merge(x, y, on = 'Date'), dfList) 

Como demostración:

 df = pd.DataFrame({'Date': [1,2,3,4], 'Value': [2,3,3,4]}) dfList = [df, df, df] dfList # [ Date Value # 0 1 2 # 1 2 3 # 2 3 3 # 3 4 4, Date Value # 0 1 2 # 1 2 3 # 2 3 3 # 3 4 4, Date Value # 0 1 2 # 1 2 3 # 2 3 3 # 3 4 4] reduce(lambda x, y: pd.merge(x, y, on = 'Date'), dfList) # Date Value_x Value_y Value # 0 1 2 2 2 # 1 2 3 3 3 # 2 3 3 3 3 # 3 4 4 4 4