Topic: Python ed excel, unione con Panda  (Letto 663 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Ltk_Sim

  • python habilis
  • **
  • Post: 52
  • Punti reputazione: 0
    • Mostra profilo
Python ed excel, unione con Panda
« il: Febbraio 22, 2017, 11:03 »
Ciao a tutti,
ho seguito alcuni consigli per la manipolazione di dati provenienti da excel su Python e sto usando Panda.

E' molto carino ma al momento ho difficoltà a gestire dinamicamente le celle, mi spiego.

Supponiamo che abbia il file excel organizzato così:


e debba prendere gli input. Non è difficile dico prendi il valore di A4, C4, E4.

Tuttavia devo poterlo gestire in maniera dinamica prendendo come dati i valori delle celle che sono sotto "Nome", "Cognome", "Data di nascita".
Ad esempio:


E devo prendere i valori non perché conosco la cella dove sono ma perché so che stanno sotto a determinati nomi.


A vostro avviso quale sarebbe la via più efficiente ed efficace per arrivare a questo risultato?

Grazie!

Offline Aezio

  • python neanderthalensis
  • ****
  • Post: 324
  • Punti reputazione: 1
    • Mostra profilo
Re: Python ed excel, unione con Panda
« Risposta #1 il: Febbraio 22, 2017, 14:10 »
Se il tuo file excel e' "ordinato" importa tutto con pandaS e poi lavora sul dataframe.

Se il tuo excel e' pieno di "buchi" allora meglio usare xlrd


[codice]In [14]: import xlrd as xl

In [15]: fobj = xl.open_workbook('test.xlsx')

In [16]: sh = fobj.sheet_by_index(0)

In [17]: for i, j in product(range(sh.ncols), range(sh.nrows)):
    ...:     print(i, j, sh.cell_value(i, j))
    ...:
0 0
0 1
0 2
0 3
1 0
1 1
1 2
1 3
2 0
2 1
2 2
2 3 Nome
3 0
3 1
3 2
3 3 Pippo

In [18]:[/codice]

In questo piccolo esempio "Nome" e' in D3, "Pippo" in D4

Offline Ltk_Sim

  • python habilis
  • **
  • Post: 52
  • Punti reputazione: 0
    • Mostra profilo
Re: Python ed excel, unione con Panda
« Risposta #2 il: Febbraio 22, 2017, 14:28 »
Grazie. Per
[codice]product[/codice]
la funzione non è definita, a cosa ti riferisci?


Per ordinato cosa intendi?

La mia paura è appunto che un domani qualcuno ci mette mano ad esempio aggiunge una riga e viene tutto sballato, per questo volevo fare qualcosa di un po' più robusto.
P.S. ho py2.7
Grazie

Offline Aezio

  • python neanderthalensis
  • ****
  • Post: 324
  • Punti reputazione: 1
    • Mostra profilo
Re: Python ed excel, unione con Panda
« Risposta #3 il: Febbraio 22, 2017, 14:32 »
product fa parte di itertools (https://docs.python.org/2.7/library/itertools.html) modulo che conviene conoscere come le proprie tasche.


Citazione
Per ordinato cosa intendi?
Se il tu excel puo' essere parsato da pandas.read_excel usa pandas, se pero' non ha dati ma qua e la delle celle con dei valori pandas non riuscira' a parsare il file e dovrai farlo a manina con xlrd

Citazione
La mia paura è appunto che un domani qualcuno ci mette mano ad esempio aggiunge una riga e viene tutto sballato, per questo volevo fare qualcosa di un po' più robusto.
Paura assolutamente giustificata, molto probabilmente stai usando lo strumento sbagliato, ma chi puo' dirlo senza del contesto?