Использование разделителя запятых в CSV — файле при чтении в Python-не работает для всех строк

#python #pandas #csv #separator

Вопрос:

У меня есть CSV-файл в следующем формате (это первые 3 строки):

 A,B,P,S,P,B,BA,DE,PREM,DISC,DISC_P,DISC_T,DISC_F
2021/05/31,2012,"10","S","","Dis","DI","EX,,0.00,,"Pt",0,
2021/05/31,2109,"10","S","","Dis","DI","EX",0.00,,"tt",0,
 

Я хочу прочитать его в фрейм данных на Python, и это мой код:

 df= pd.read_csv (r'C:file.csv',sep=",")

df.head()
 

Когда я запускаю этот код, он соответственно разбивает только первую строку на отдельные столбцы. Однако остальные строки просто заполняются в 1 столбец и не разделяются и не группируются соответственно под заголовками.

В чем может быть проблема?

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

1. Скорее всего, CSV-файл плохо сформирован.

Ответ №1:

возможно, в вашем CSV-файле вы не закрываетесь " или у вас больше или меньше , .

теперь в вашем CSV-файле я нахожу строку, которую вы не закрываете "EX .

Я редактирую ваш csv-файл, как показано ниже:

 A,B,P,S,P,B,BA,DE,PREM,DISC,DISC_P,DISC_T,DISC_F
2021/05/31,2012,"10","S","","Dis","DI","EX",0.00,,"Pt",0,
2021/05/31,2109,"10","S","","Dis","DI","EX",0.00,,"tt",0,
 

запустите этот код:

 import csv
with open('file.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)
        
df= pd.read_csv(r'file.csv',sep=",")

df.head()
 

получил ниже выхода:

введите описание изображения здесь