Удаление «» в столбце [дубликаты]

1

У меня есть DF, как показано ниже

DF =
Index   R
0       A
1       "B,C"
2       D
3       "E,F"

Я хочу удалить все значения из значений:

DF_New =
Index   R
0       A
1       B,C
2       D
3       E,F

Использование join (literal_eval (x)) или других конструкций не работает. Что я должен делать?

  • 1
    Контролируете ли вы конструкцию DataFrame?
  • 0
    df.applymap(lambda x: x.strip('\"') if isinstance(x, str) else x) если вы хотите df.applymap(lambda x: x.strip('\"') if isinstance(x, str) else x) двойные кавычки по всему df.
Показать ещё 1 комментарий
Теги:
pandas

2 ответа

1

Вы можете использовать аксессуар .str:

>>> df['R'].str.replace('"', '')
0      A
1    B,C
2      D
3    E,F
Name: R, dtype: object

который должен устранить все буквенные двойные кавычки из этого столбца.

Обратите внимание, что каждый результат будет str таких, как 'B,C'. Если вы хотите конвертировать каждый в контейнер списка, используйте:

>>> df['R'].str.replace('"', '').str.split()
0      [A]
1    [B,C]
2      [D]
3    [E,F]
Name: R, dtype: object
  • 0
    Эх, это было первое, что я попробовал, но ничего не вышло. Я имею в виду, что даже это ничего не сделало ".replace ('^"', '', regex = True) .replace ('"$', '', regex = True)"
0

Вы можете использовать:

DF.loc[DF['R'].str.startswith('"'), 'R'] = DF['R'].str[1:]
DF.loc[DF['R'].str.endswith('"'), 'R'] = DF['R'].str[:-1]

Например,

In [5]: DF
Out[5]: 
   Index      R
0      0      A
1      1  "B,C"
2      2      D
3      3  "E,F"

In [6]: DF.loc[DF['R'].str.startswith('"'), 'R'] = DF['R'].str[1:]
In [7]: DF.loc[DF['R'].str.endswith('"'), 'R'] = DF['R'].str[:-1]
In [8]: DF
Out[8]: 
   Index    R
0      0    A
1      1  B,C
2      2    D
3      3  E,F

Обратите внимание, что это заменит только двойные кавычки, которые появляются в начале или конце строки, а не в середине.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню