У меня есть 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)) или других конструкций не работает. Что я должен делать?
Вы можете использовать аксессуар .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
Вы можете использовать:
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
Обратите внимание, что это заменит только двойные кавычки, которые появляются в начале или конце строки, а не в середине.
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.