Próbuję zaimportować plik .csv za pomocą pandas.read_csv()
, ale nie chcę importować drugiego wiersza pliku danych (wiersz z indeksem = 1 dla indeksowania 0).
Nie widzę, jak go nie importować, ponieważ argumenty użyte w poleceniu wydają się niejednoznaczne:
Ze strony pandy:
skiprows
: lista lub liczba całkowitaNumery wierszy do pominięcia (indeksowane 0) lub liczba wierszy do pominięcia (liczba całkowita) na początku pliku. "
Jeśli wstawię skiprows=1
argumenty, skąd będzie wiedzieć, czy pominąć pierwszy wiersz, czy pominąć wiersz z indeksem 1?
Odpowiedzi:
Możesz spróbować samemu:
>>> import pandas as pd >>> from StringIO import StringIO >>> s = """1, 2 ... 3, 4 ... 5, 6""" >>> pd.read_csv(StringIO(s), skiprows=[1], header=None) 0 1 0 1 2 1 5 6 >>> pd.read_csv(StringIO(s), skiprows=1, header=None) 0 1 0 3 4 1 5 6
źródło
[]
.from io import StringIO
pd.compat.StringIO
.Nie mam jeszcze reputacji do komentowania, ale chcę dodać odpowiedź do alko w celu uzyskania dalszych informacji.
Z dokumentów :
źródło
Ten sam problem wystąpił podczas uruchamiania skiprows podczas czytania pliku csv. Wkładałem skip_rows = 1 to nie zadziała
Prosty przykład daje wyobrażenie, jak korzystać z pomiń podczas odczytu pliku csv.
import pandas as pd #skiprows=1 will skip first line and try to read from second line df = pd.read_csv('my_csv_file.csv', skiprows=1) ## pandas as pd #print the data frame df
źródło
Wszystkie te odpowiedzi pomijają jeden ważny punkt - n-ty wiersz to n-ty wiersz w pliku, a nie n-ty wiersz w zbiorze danych. Mam sytuację, w której pobieram z USGS przestarzałe dane miernika strumienia. Początek zbioru danych jest oznaczony znakiem „#”, pierwszy wiersz po nim to etykiety, następnie wiersz opisujący typy dat, a na końcu same dane. Nigdy nie wiem, ile jest wierszy komentarza, ale wiem, jakie są pierwsze kilka wierszy. Przykład:
Byłoby miło, gdyby istniał sposób na automatyczne pominięcie n-tego wiersza, a także n-tego wiersza.
Uwaga, udało mi się rozwiązać problem z:
import pandas as pd ds = pd.read_csv(fname, comment='#', sep='\t', header=0, parse_dates=True) ds.drop(0, inplace=True)
źródło
skip[1]
pominie drugą linię, a nie pierwszą.źródło
Upewnij się również , że plik jest w rzeczywistości plikiem CSV. Na przykład, jeśli masz plik .xls i po prostu zmienisz rozszerzenie pliku na .csv, plik nie zostanie zaimportowany i wyświetli powyższy błąd. Aby sprawdzić, czy to jest twój problem, otwórz plik w programie Excel i prawdopodobnie powie:
„Format i rozszerzenie pliku„ Nazwa pliku.csv ”nie są zgodne. Plik może być uszkodzony lub niebezpieczny. Nie otwieraj go, jeśli nie ufasz jego źródłu. Czy mimo to chcesz go otworzyć?”
Aby naprawić plik: otwórz plik w programie Excel, kliknij „Zapisz jako”, wybierz format pliku do zapisania (użyj .cvs), a następnie zastąp istniejący plik.
To był mój problem i naprawił błąd za mnie.
źródło