Pandy czytane w tabeli bez nagłówków

238

Jak mogę czytać w pliku .csv (bez nagłówków) i kiedy chcę tylko podzestawu kolumn (powiedzmy 4 i 7 z 20 kolumn), używając pand? Nie mogę tego zrobićusecols

użytkownik308827
źródło

Odpowiedzi:

349

Aby odczytać plik csv, który nie ma nagłówka i tylko dla niektórych kolumn musisz przekazać parametry, header=Nonea usecols=[3,6]dla czwartej i siódmej kolumny:

df = pd.read_csv(file_path, header=None, usecols=[3,6])

Zobacz dokumenty

EdChum
źródło
67

Poprzednie odpowiedzi były dobre i poprawne, ale moim zdaniem dodatkowy namesparametr sprawi, że będzie idealny, i powinien to być zalecany sposób, szczególnie gdy csv nie ma headers.

Rozwiązanie

Zastosowanie usecolsi namesparametry

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'])

Dodatkowe lektury

lub użyj, header=Noneaby wyraźnie powiedzieć ludziom, że csvnie ma nagłówków (w każdym razie obie linie są identyczne )

df = pd.read_csv(file_path, usecols=[3,6], names=['colA', 'colB'], header=None)

Abyś mógł odzyskać swoje dane przez

# with `names` parameter
df['colA']
df['colB'] 

zamiast

# without `names` parameter
df[0]
df[1]

Wyjaśnić

Na podstawie read_csv , kiedy nameszostaną przekazane jawnie, headerbędą zachowywać się jak Nonezamiast 0, więc można pominąć, header=Nonejeśli namesistnieją.

ch33hau
źródło
9

Upewnij się, że podałeś pass header=Nonei add usecols=[3,6]dla czwartej i siódmej kolumny.

Alex
źródło