Tengo algunos Pandas DataFrames y estoy tratando de encontrar una buena manera de calcular y graficar el número de veces que cada entrada única ocurre en DataFrames. Como ejemplo si tuviera los 2 siguientes DataFrames:

    year    month
0    1900    1
1    1950    2
2    2000    3

    year    month
0    1900    1
1    1975    2
2    2000    3

Estaba pensando que quizás haya una manera de combinarlos en un solo DataFrame mientras se usa una nueva columna counts para realizar un seguimiento de la cantidad de veces que se produjo una combinación única de year + month en cualquiera de los DataFrames. A partir de ahí, pensé que podía simplemente dispersar las combinaciones year + month con sus recuentos correspondientes.

    year    month    counts
0    1900    1        2
1    1950    2        1
2    2000    3        2
3    1975    2        1

¿Hay una buena manera de lograr esto?

1
The Nightman 5 jun. 2018 a las 04:17

1 respuesta

La mejor respuesta

concat luego usando groupby agg

pd.concat([df1,df2]).groupby('year').month.agg(['count','first']).reset_index().rename(columns={'first':'month'})
Out[467]: 
   year  count  month
0  1900      2      1
1  1950      1      2
2  1975      1      2
3  2000      2      3
1
BENY 5 jun. 2018 a las 01:21