elaborazione dati, calcolo di correlazione
-
16-10-2019 - |
Domanda
Non ho dati di conteggio di acquisto del prodotto che si presenta piace questo:
user item1 item2
a 2 4
b 1 3
c 5 6
... ... ...
I dati sono importati in python
utilizzando numpy.genfromtxt
. Ora voglio lavorare per ottenere la correlazione tra item1
importo di acquisto e item2
importo di acquisto - in pratica per ogni x
valore item1
Voglio trovare tutti gli utenti che hanno acquistato item1
in quantità x
poi media del item2
nel corso degli stessi utenti. Qual è il modo migliore per farlo? Posso farlo utilizzando loop for
ma ho pensato che ci potrebbe essere qualcosa di più efficiente di quello. Grazie!
Soluzione
Panda è la cosa migliore dopo il pane a fette (per la scienza dei dati, almeno).
un esempio:
import pd
In [22]: df = pd.read_csv('yourexample.csv')
In [23]: df
Out[23]:
user item1 item2
0 a 2 4
1 b 1 3
2 c 5 6
In [24]: df.columns
Out[24]: Index([u'user ', u'item1 ', u'item2'], dtype='object')
In [25]: df.corr()
Out[25]:
item1 item2
item1 1.000000 0.995871
item2 0.995871 1.000000
In [26]: df.cov()
Out[26]:
item1 item2
item1 4.333333 3.166667
item2 3.166667 2.333333
Bingo!
Altri suggerimenti
Utilizzare uno dei panda costruito nelle funzioni: http://pandas.pydata.org/pandas-docs/stable/computation .html # correlazione