Я пытаюсь импортировать файл .csv pandas.read_csv()
, но не хочу импортировать вторую строку файла данных (строку с индексом = 1 для 0-индексации).
Я не понимаю, как не импортировать его, потому что аргументы, используемые с командой, кажутся неоднозначными:
С сайта панд:
skiprows
: список или целое числоНомера строк, которые нужно пропустить (с индексом 0), или количество строк, которые нужно пропустить (int) в начале файла ».
Если я введу skiprows=1
аргументы, как он узнает, пропустить ли первую строку или пропустить строку с индексом 1?
Ответы:
Можете попробовать сами:
>>> 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
источник
[]
.from io import StringIO
pd.compat.StringIO
.У меня еще нет репутации, чтобы комментировать, но я хочу добавить в ответ alko для дальнейшего использования.
Из документов :
источник
У меня такая же проблема при запуске скипроунов при чтении файла csv. Я делал skip_rows = 1, это не сработает
Простой пример дает представление о том, как использовать skiprows при чтении файла 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
источник
Во всех этих ответах упускается один важный момент: n-я строка - это n-я строка в файле, а не n-я строка в наборе данных. У меня есть ситуация, когда я загружаю некоторые устаревшие данные водомеров из Геологической службы США. Заголовок набора данных комментируется знаком «#», первая строка после нее - метки, следующая идет строка, описывающая типы дат, и последняя - сами данные. Я никогда не знаю, сколько там строк комментариев, но я знаю, что это за первая пара строк. Пример:
Было бы неплохо, если бы был способ автоматически пропускать как n-ю строку, так и n-ю строку.
В качестве примечания я смог исправить свою проблему с помощью:
import pandas as pd ds = pd.read_csv(fname, comment='#', sep='\t', header=0, parse_dates=True) ds.drop(0, inplace=True)
источник
skip[1]
пропустит вторую строку, а не первую.источник
Также убедитесь, что ваш файл на самом деле является файлом CSV. Например, если у вас есть файл .xls, и вы просто изменили расширение файла на .csv, файл не будет импортирован и выдаст ошибку, указанную выше. Чтобы убедиться, что это ваша проблема, откройте файл в Excel, и он, скорее всего, скажет:
«Формат файла и расширение 'Filename.csv' не совпадают. Файл может быть поврежден или небезопасен. Если вы не доверяете его источнику, не открывайте его. Вы все равно хотите открыть?»
Чтобы исправить файл: откройте файл в Excel, нажмите «Сохранить как», выберите формат файла для сохранения (используйте .cvs), затем замените существующий файл.
Это была моя проблема, и я исправил ошибку.
источник