#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