Как удалить лишний столбец (без заголовка) в csv в Python

#python #pandas #string #csv #parsing

Вопрос:

У меня есть csv-файл, в котором в 1 (или более) строке у меня есть дополнительное значение, которое не соответствует заголовку первой строки

Пример:

 name,age,gender
abc,20,m
def,28,f
ghi,36,f
jkl,23,f,a
xyz,30,m
 

Я хочу загрузить этот набор данных в фрейм данных Pandas, так как я могу удалить это значение с помощью Python?
Из-за размера исходного файла обычные инструменты для текста/листа не будут загружать все строки

  • Получил эту ошибку при загрузке в pandas

df = pd.read_csv(data,delimiter=',')

Ошибка синтаксического анализа: Ошибка при маркировке данных. C ошибка: Ожидалось 166 полей в строке 26398, увидел 167

Комментарии:

1. Покажите, что вы пробовали? Где все пошло не так? Каковы ваши затраты/ожидаемые результаты? Используйте полную трассировку ошибок.

2. Как вы получаете эту ошибку? df = pd.read_csv('./test.csv') отлично работает, просто копируя показанный csv в test.csv . Я получаю колонки: Index(['name', 'age', 'gender', 'Unnamed: 3'], dtype='object') без ошибок

Ответ №1:

пример csv

 name,age,gender
abc,20,m
def,28,f
ghi,36,f
jkl,23,f,a
xyz,30,m
 

код python — используйте usecols аргумент of pandas.read_csv .

 import pandas as pd 

df = pd.read_csv('sample.csv', usecols=[0, 1, 2]) # or usecols=['name', 'age', 'gender']
print(df)
 

выход

   name  age gender
0  abc   20      m
1  def   28      f
2  ghi   36      f
3  jkl   23      f
4  xyz   30      m