Получение синтаксической ошибки при очистке данных с помощью ast.literal_eval () - PullRequest
0 голосов
/ 21 марта 2019

Я извлек набор данных из библиотеки librosa.

Это первые пять данных.

Это общие столбцы.

Эти данные в формате объекта.

У него есть '\ n', пробелы и все. Итак, его нужно почистить

import ast
import numpy as np
import re

#  removing \n and converting into number format
if '\n' in df['MFCC_1'][0]:
    row = df['MFCC_1'][0]        
    row = ast.literal_eval(re.sub('\s+', ",", df['MFCC_1'][0].replace('\n', '')))

print(row)

Этот код работает, но в большинстве случаев выдает синтаксическую ошибку.

Это ошибка, возникающая в большинстве случаев.


После этого я хочу сохранить все очищенные данные в CSV-файл в том же формате строк и столбцов. Так что любые предложения для этого тоже.

1 Ответ

1 голос
/ 21 марта 2019

Не заменяйте все пробелы, но только если они находятся между 2 цифрами:

if '\n' in df['MFCC_1'][0]:
    row = df['MFCC_1'][0].replace('\n', '')
    row = ast.literal_eval(re.sub(r'(?<=\d)\s+(?=\d)', ",", row))
...