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").