plotting plots groupby examples example pandas

plots - Pandas: simple ''unirse'' no funciona?



plotting a pandas dataframe (2)

Me gusta pensar que no soy idiota, pero tal vez me equivoque. ¿Alguien puede explicarme por qué esto no funciona? Puedo lograr los resultados deseados usando ''fusionar''. Pero eventualmente necesito unirme a varios DataFrames pandas así que necesito hacer que este método funcione.

In [2]: left = pandas.DataFrame({''ST_NAME'': [''Oregon'', ''Nebraska''], ''value'': [4.685, 2.491]}) In [3]: right = pandas.DataFrame({''ST_NAME'': [''Oregon'', ''Nebraska''], ''value2'': [6.218, 0.001]}) In [4]: left.join(right, on=''ST_NAME'', lsuffix=''_left'', rsuffix=''_right'') Out[4]: ST_NAME_left value ST_NAME_right value2 0 Oregon 4.685 NaN NaN 1 Nebraska 2.491 NaN NaN


Puedo confirmar, el método de unión de Pandas es defectuoso. En mi caso, ambas claves eran cadenas largas (18 caracteres) y el resultado fue como si los pandas solo coincidieran con el primer par de caracteres. La función de fusión funciona correctamente. Por favor, no use la función de unión, debería eliminarse realmente de los métodos disponibles, de lo contrario puede estropearlo a lo grande.


Trate de usar la merge :

In [14]: right Out[14]: ST_NAME value2 0 Oregon 6.218 1 Nebraska 0.001 In [15]: merge(left, right) Out[15]: ST_NAME value value2 0 Nebraska 2.491 0.001 1 Oregon 4.685 6.218 In [18]: merge(left, right, on=''ST_NAME'', sort=False) Out[18]: ST_NAME value value2 0 Oregon 4.685 6.218 1 Nebraska 2.491 0.001

DataFrame.join es un poco de método heredado y aparentemente no hace uniones columna-en-columna (originalmente se indexó en la columna usando el parámetro on, por lo tanto, la designación "legado").