Удалять пустые квадратные скобки дает ValueError: недопустимый литерал для int () с основанием 10: - PullRequest
0 голосов
/ 25 сентября 2018

Я удаляю квадратные скобки из моей df, используя этот код:

test[column].str.strip('[]').astype(int)

Это работает нормально, если в квадратных скобках есть строковые значения.Иногда есть ячейки, имеющие только пустые квадратные скобки ([]).Это приводит к следующей ошибке:

ValueError: недопустимый литерал для int () с основанием 10:

Как мне удалить все квадратные скобки в моих данных?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Попробуйте использовать модуль ast.

Пример:

import pandas as pd
import ast

df = pd.DataFrame({"C": ["[]", "[1]"]})
print(df["C"].apply(ast.literal_eval).str[0].fillna(0).astype(int))

Выход:

0    0
1    1
Name: C, dtype: int32
0 голосов
/ 25 сентября 2018

Просто удалите строки с пустыми квадратными скобками

new_df = test[test[column] != "[]"].copy()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...