Панды читайте в таблице без заголовков

239

Как я могу читать в файле .csv (без заголовков) и когда мне нужно только подмножество столбцов (скажем, 4-й и 7-й из 20 столбцов), используя панд? Кажется, я не могу сделатьusecols

user308827
источник

Ответы:

351

Чтобы прочитать csv, в котором нет заголовка и только для определенных столбцов, необходимо передать параметры header=Noneи usecols=[3,6]для 4-го и 7-го столбцов:

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

Посмотреть документы

EdChum
источник
67

Предыдущие ответы были хорошими и правильными, но, по моему мнению, дополнительный namesпараметр сделает его идеальным, и это должно быть рекомендовано, особенно когда CSV не имеет headers.

Решение

Использование usecolsи namesпараметры

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

Дополнительное чтение

или используйте, header=Noneчтобы явно сказать людям, что csvзаголовок не имеет (в любом случае обе строки идентичны )

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

Так что вы можете получить ваши данные с помощью

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

вместо того

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

объяснять

На основании read_csv , когда namesпередаются явно, тогда headerбудет вести себя как Noneвместо 0, так что можно пропустить, header=Noneкогда namesсуществует.

ch33hau
источник
9

Убедитесь, что вы указали pass header=Noneи add usecols=[3,6]для 4-го и 7-го столбцов.

Alex
источник