У меня есть dataframe
со столбцом, содержащим данные tuple
в виде строки. Например. '(5,6)'
. Мне нужно преобразовать это в структуру кортежа. Один из способов сделать это - использовать ast.literal_eval (). Я использую это таким образом.
df['Column'] = df['Column'].apply(ast.literal_eval)
К сожалению, мои данные в этом столбце также содержат пустые строки. ast.literal_eval()
не может справиться с этим. Я получаю эту ошибку.
SyntaxError: unexpected EOF while parsing
Я не уверен, так ли это, потому что он не может обработать такого персонажа. Основываясь на моем чтении, я обнаружил, что ast.literal_eval()
работает только в тех случаях, когда внутри строковой структуры есть список, dict или кортеж.
Чтобы преодолеть это, я попытался создать свою собственную функцию и вернуть пустую строку, если она вызывает исключение.
def literal_return(val):
try:
return ast.literal_eval(val)
except ValueError:
return (val)
df['Column2'] = df['Column'].apply(literal_return)
Даже в этом случае появляется та же ошибка. Как мы справимся с этим. Было бы замечательно, даже если есть способ игнорировать определенные строки, чтобы применить функцию и применить к остальным. Любая помощь приветствуется.