Удалить определенную строку из всего столбца в панде
У меня есть пандас датафрейм df
с содержанием ниже:
Date Factor Expiry Grade
0 12/31/1991 2.138766 3/30/1992 -3.33%
1 10/29/1992 2.031381 2/8/1993 -1.06%
2 5/20/1993 2.075670 6/4/1993 -6.38%
Я хотел бы удалить %
символ из всех строк в Grade
колонка. Результат должен выглядеть так:
Date Factor Expiry Grade
0 12/31/1991 2.138766 3/30/1992 -3.33
1 10/29/1992 2.031381 2/8/1993 -1.06
2 5/20/1993 2.075670 6/4/1993 -6.38
Я использую Python v3.6.
4 ответа
Решение
Вы можете использовать нарезку строк, а затем преобразовать в числовой тип через pd.to_numeric
:
df['Grade'] = pd.to_numeric(df['Grade'].astype(str).str[:-1], errors='coerce')
Преобразование в float
рекомендуется, так как ряд строк будет проходить в общем и неэффективно object
dtype, в то время как числовые типы допускают векторизованные операции.
С помощью str.replace
должно сработать:
df['Grade'] = df['Grade'].str.replace('%', '')
Почему бы и нет str.rstrip()
:
df['Grade'] = df['Grade'].str.rstrip('%')
Пока мы даем альтернативы, можем также translate
df.Grade.str.translate(str.maketrans({'%':''})).astype(float)