cómo agregar dos o más marcos de datos en pandas y hacer un análisis

Tengo 3 df’s

df1=pd.DataFrame({"Name":["one","two","three"],"value":[4,5,6]}) df2=pd.DataFrame({"Name":["four","one","three"],"value":[8,6,2]}) df3=pd.DataFrame({"Name":["one","four","six"],"value":[1,1,1]}) 

Puedo agregar uno por uno, pero quiero agregar los tres marcos de datos a la vez y hacer un análisis.

Estoy tratando de contar el nombre que contiene la cantidad de marcos de datos divididos por el total de marcos de datos name present in dataframes/total dataframes

Mi salida deseada es,

  Name value Count one 11 1 two 5 0.333 three 8 0.666 four 9 0.666 six 1 0.333 

Por favor ayuda, gracias de antemano!

Utilizar:

  • primer concat
  • agregado por agg
  • dividir columna

 dfs = [df1, df2, df3] df = pd.concat(dfs) df1 = df.groupby('Name')['value'].agg([('value', 'sum'), ('Count', 'size')]).reset_index() df1['Count'] /= len(dfs) 

Solución similar:

 df1 = (pd.concat(dfs) .groupby('Name')['value'] .agg([('value', 'sum'), ('Count', 'size')]) .assign(Count = lambda x: x.Count /len(dfs)) .reset_index()) print (df1) Name value Count 0 four 9 0.666667 1 one 11 1.000000 2 six 1 0.333333 3 three 8 0.666667 4 two 5 0.333333