Come posso leggere in un file .csv (senza intestazioni) e quando voglio solo un sottoinsieme delle colonne (diciamo 4 ° e 7 ° su un totale di 20 colonne), usando i panda? Non riesco a fareusecols
Come posso leggere in un file .csv (senza intestazioni) e quando voglio solo un sottoinsieme delle colonne (diciamo 4 ° e 7 ° su un totale di 20 colonne), usando i panda? Non riesco a fareusecols
Risposte:
Le risposte precedenti erano buone e corrette, ma a mio avviso, un names
parametro aggiuntivo lo renderà perfetto e dovrebbe essere il modo consigliato, soprattutto quando il CSV non ha headers
.
usecols
e names
parametridf = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])
o usa header=None
per dire esplicitamente alle persone che csv
non ha intestazioni (comunque entrambe le linee sono identiche )
df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)
In modo che tu possa recuperare i tuoi dati tramite
# with `names` parameter
df['colA']
df['colB']
invece di
# without `names` parameter
df[0]
df[1]
Basato su read_csv , quando names
viene passato esplicitamente, allora si header
comporterà come None
invece di 0
, quindi si può saltare header=None
quando names
esistono.