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!

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top