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 namesparametro aggiuntivo lo renderà perfetto e dovrebbe essere il modo consigliato, soprattutto quando il CSV non ha headers.
usecolse namesparametridf = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])
o usa header=Noneper dire esplicitamente alle persone che csvnon 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 namesviene passato esplicitamente, allora si headercomporterà come Noneinvece di 0, quindi si può saltare header=Nonequando namesesistono.