Как читать файл, разделенный пробелом и :

avatar
Anand Mooga
8 апреля 2018 в 06:10
76
1
0

Мои данные имеют вид:

1 440:0,033906222568727 730:0,0424739279722748 1523:0,0773048148348295 1893:0,0433930684646909

1 271:0,0646290650479301 405:0,0653366028581683 584:0,0744087075001463 770:0,0717824200677465

1 577:0,0679078686536282 761:0,0506946081073312

-1 440: 0,0437614564467411 798: 0,0370070258333617 831: 0,0549176430011721 1 681: 0,0715035548706038 1963: 0,102891965918849 2667: 0,0461603813033019 2899: 0,0672807783934756

Я хочу вывести в виде таблицы:

1 440 0.033906222568727 ......
1 271 0.0646290650479301 ...... 
1 271 0.0646290650479301 ......
1 577 0.0679078686536282 .........

Я пытался использовать

 x = pd.read_csv('rcv1_train.binary', sep = "\s+|:",  engine = 'python')

и получил ошибку:

pandas.errors.ParserError: Ожидалось 413 полей в строке 134, увидел 419. Ошибка может быть связана с игнорированием кавычек при использовании многосимвольного разделителя.

Источник
DYZ
8 апреля 2018 в 06:12
1

"Я пытался использовать " - и что случилось?

Anand Mooga
8 апреля 2018 в 06:17
0

Я получил ошибку: pandas.errors.ParserError: Ожидается 413 полей в строке 134, видел 419. Возможно, ошибка связана с игнорированием кавычек при использовании многосимвольного разделителя.

Ответы (1)

avatar
Rakesh
8 апреля 2018 в 06:19
1

Возможно, у вас неверные данные в строке 134

попробуйте использовать error_bad_lines=False .

x = pd.read_csv('rcv1_train.binary', sep = "\s+|:",  engine = 'python', error_bad_lines=False)
Anand Mooga
8 апреля 2018 в 06:27
0

Это дает мне все значения Nan и заставляет пропустить почти половину строк.

Rakesh
8 апреля 2018 в 06:32
1

Это потому, что данные в CSV неверны. строки с неверными данными будут заполнены значениями Nan

DYZ
8 апреля 2018 в 06:44
0

@Rakesh «Если False, то эти «плохие строки» будут удалены из возвращаемого DataFrame». "Плохие" строки будут не заполнены Нансами. pandas.pydata.org/pandas-docs/stable/generated/…