ho due dataframes (Serie realtà) generato da un'operazione di groupby:panda si fondono su indice non funziona
bw
l1
Consumer Discretionary 0.118718
Consumer Staples 0.089850
Energy 0.109988
Financials 0.159418
Health Care 0.115060
Industrials 0.109078
Information Technology 0.200392
Materials 0.035509
Telecommunications Services 0.030796
Utilities 0.031190
dtype: float64
e pw
l1
Consumer Discretionary 0.148655
Consumer Staples 0.067873
Energy 0.063899
Financials 0.095689
Health Care 0.116015
Industrials 0.181346
Information Technology 0.117715
Materials 0.043155
Telecommunications Services 0.009550
Utilities 0.156103
dtype: float64
Quando provo e li merge
using
pd.merge(bw,pw,left_index=True,right_index=True)
ottengo un errore
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2883, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-174-739bb362e06d>", line 1, in <module>
pd.merge(pw,attr,left_index=True,right_index=True)
File "/usr/lib/python2.7/dist-packages/pandas/tools/merge.py", line 39, in merge
return op.get_result()
File "/usr/lib/python2.7/dist-packages/pandas/tools/merge.py", line 185, in get_result
join_index, left_indexer, right_indexer = self._get_join_info()
File "/usr/lib/python2.7/dist-packages/pandas/tools/merge.py", line 251, in _get_join_info
left_ax = self.left._data.axes[self.axis]
IndexError: list index out of range
ma quando lo faccio
bw = bw.reset_index()
pw = pw.reset_index()
mrg = pd.merge(pw,bw,on="l1")
funziona. Rende il mio codice molto meno leggibile su più iterazioni di join, tuttavia mi piacerebbe sapere cosa sto facendo male e come posso ottenere la prima versione del codice merging on indexes
per funzionare.
Grazie
È interessante, mi sembra soddisfacente. Quale versione di panda stai usando? Inoltre, puoi provare dataframe.join() ... bw.join (pw) –
Ciao @BobHaffner è il panda nel repository di ubuntu che penso sia 0.14.1. bw.join (pw) dà un errore 'AttributeError: l'oggetto 'Series' non ha attributo 'join'', motivo per cui stavo scendendo il percorso di fusione ... –
Ok, spara. Avevo dimenticato che il join era una cosa solo per df –