Снимите квадратные скобки с клеток, используя панд - PullRequest
0 голосов
/ 19 июня 2019

У меня есть Pandas Dataframe с данными, как показано ниже

id, name, date
[101],[test_name],[2019-06-13T13:45:00.000Z]
[103],[test_name3],[2019-06-14T13:45:00.000Z, 2019-06-14T17:45:00.000Z]
[104],[],[]

Я пытаюсь преобразовать его в формат, как показано ниже, без квадратных скобок

Ожидаемый результат:

id, name, date
101,test_name,2019-06-13T13:45:00.000Z
103,test_name3,2019-06-14T13:45:00.000Z, 2019-06-14T17:45:00.000Z
104,,

Я попытался использовать регулярное выражение, как показано ниже, но оно выдало ошибку TypeError: expected string or bytes-like object

re.search(r"\[([A-Za-z0-9_]+)\]", df['id'])

Ответы [ 3 ]

0 голосов
/ 19 июня 2019

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

newstring = oldstring[1:len(oldstring)-1]

для замены ячейки в фрейме данных.

0 голосов
/ 19 июня 2019

Попробуйте выполнить цикл по столбцам:

for col in df.columns:
    df[col] = df[col].str[1:-1]

Или используйте apply, если дублирование ваших данных не является проблемой:

df = df.apply(lambda x: x.str[1:-1])

Вывод:

    id        name                                               date
0  101   test_name                           2019-06-13T13:45:00.000Z
1  103  test_name3  2019-06-14T13:45:00.000Z, 2019-06-14T17:45:00....
2  104           

Или, если вы хотите использовать регулярные выражения, вам понадобится str accessor и extract:

df.apply(lambda x: x.str.extract('\[([A-Za-z0-9_]+)\]'))                                               
0 голосов
/ 19 июня 2019

понял, я могу извлечь данные, используя следующие:

df['id'].str.get(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...