Domanda

Sto cercando di leggere in un file .csv contenente alcuni dati. Ho solo bisogno di leggere in blocchi specifici di righe dal file, come ad esempio la linea 15- linea 20, la linea 45 linea 50, e così via. Tuttavia, il file contiene testo e la copia informazioni scrivere come, ad esempio ©1990-2016 AAR,All rights reserved in più punti. Tali linee sembrano produrre la ValueError: No columns to parse from file errore, perché quando basta copiare righe senza tali informazioni utilizzando pd.read_csv(), funziona benissimo. Il mio obiettivo è quello di automatizzare il processo di download di questi file dal web e la loro lettura in panda a pezzi della gru a benna di righe e poi fare un po 'di elaborazione con esso, quindi non posso solo specificare manualmente le finestre di testo privo di tali caratteri.

Ecco cosa ho provato: pd.read_csv("filename.csv",encoding=utf-8, skiprows = 14) e pd.read_csv("filename.csv",encoding=utf-16, skiprows = 15), dopo aver guardato risposte simili in cambio pila, ma questo non ha funzionato. Qualcuno può darmi qualche indicazione su questo?

È stato utile?

Soluzione

C'è comando df.drop che può essere utilizzato nel modo seguente per eliminare alcune righe (in questo caso, 15 e 16):

df.drop(df.index[[15,16]])

Se le righe non ti servono sono regolari (ad esempio, non è mai necessario remate 15), allora questa è una soluzione rapida e sporca.

Se si desidera solo abbandonare le righe arbitrarie che contiene un certo valore, questo dovrebbe fare il trucco:

df = df.drop([df.column_name == ©1990-2016 AAR])

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