Mam plik wejściowy ze znanymi kolumnami, powiedzmy dwie kolumny Name
i Sex
. Czasami ma wiersz nagłówka Name,Sex
, a czasami nie:Pandy read_csv nie wiedząc, czy nagłówek jest obecny
1.csv:
Name,Sex
John,M
Leslie,F
2.csv:
John,M
Leslie,F
Znając tożsamość kolumny wcześniej, czy istnieje dobry sposób na obsługę obu przypadków za pomocą tego samego polecenia read_csv
? Zasadniczo, chcę podać names=['Name', 'Sex']
, a następnie mam to wnioskować header=0
tylko wtedy, gdy nagłówek tam jest. Najlepsze, co mogę wymyślić to:
1) Przeczytaj pierwszy wiersz pliku przed wykonaniem
read_csv
i ustawić odpowiednio parametry .2) Wystarczy zrobić
df = pd.read_csv(input_file, names=['Name', 'Sex'])
, następnie sprawdzić, czy zeroeth wiersz jest identyczny z nagłówkiem, a jeśli tak upuść go (i wtedy być może trzeba zmienić numerację wierszy).
Ale nie wydaje mi się to tak niezwykłe w przypadku użycia. Czy jest jakiś wbudowany sposób robienia tego z read_csv
, o którym nie myślałem?
Dzięki za wszystkie opcje! Ostatnia wersja wciąż wydaje mi się najczystsza, więc myślę, że wykorzystam to podejście. Pozostawię pytanie otwarte na razie i zaakceptuję za kilka dni, jeśli nic innego nie wyjdzie. – leekaiinthesky