Как я могу читать в CSV файле (без заголовков), и когда мне нужно только подмножество столбцов (например, 4-е и 7-е из 20 столбцов), используя pandas? Кажется, я не могу сделать usecols
Pandas читать в таблице без заголовков
Ответ 1
Чтобы прочитать csv, в котором нет заголовка, и только для определенных столбцов вам необходимо передать параметры header=None
и usecols=[3,6]
для 4-го и 7-го столбцов:
df = pd.read_csv(file_path, header=None, usecols=[3,6])
Смотрите docs
Ответ 2
Предыдущие ответы были хорошими и правильными, но, по моему мнению, дополнительный параметр 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
существуют.
Ответ 3
Убедитесь, что вы указали pass header=None
и добавили usecols=[3,6]
для 4-го и 7-го столбцов.