Ho un file csv e devo calcolare la media per alcune colonne. Ecco come ho fatto:Come leggere i numeri in python dal file csv?
file=csv.reader(open('tab.csv','r'))
n=[]
for row in file:
n.append(row[8])
quindi ho un elenco di stringa: n = [ '', '', '1.58' ...] Come posso convertire questi per galleggiare? Ho provato con:
n_values=np.array(n)
n_values[n=='']='0'
values=n_values.astype(np.float)
np.mean(values)
Ma la media non è corretto perché devo saltare le stringhe vuote senza contare. Grazie per il tuo aiuto!
È possibile utilizzare 'n.append (float (row [8]))', ma se si dispone di valori vuoti voi sarà necessario inserirlo all'interno di un blocco try/except. – matiasg
@Alice Quello che si sta chiedendo in realtà è come convertire la stringa in float. Il resto delle cose nella domanda è irrilevante –
@OmerDagan: dovendo fare conversioni di tipo esplicito è un odore di codice, basta usare pandas 'pd.read.csv()'. La domanda come sta va bene (si spera che il file CSV abbia un'intestazione) – smci