Mi piace pensare di non essere un idiota, ma forse mi sbaglio. Qualcuno può spiegarmi perché questo non funziona? Posso ottenere i risultati desiderati usando 'fusione'. Ma alla fine dovrò unirmi a più pandas
DataFrames
quindi ho bisogno di far funzionare questo metodo.Panda: semplice 'join' non funziona?
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
Interessante. Quindi sembra che per ottenere quello che voglio, dovrò eseguire successive fusioni, dato che 'merge' prende solo due DataFrames? – Phil
Ho avuto lo stesso problema e ho trovato questa risposta. È corretto. Dai documenti 0.16.2: Il metodo DataFrame.join correlato, utilizza l'unione internamente per i join index-su-index e index-on-column (s), ma si aggiunge agli indici per impostazione predefinita anziché provare a unirsi su colonne comuni (il comportamento predefinito per l'unione). –
jdmarino