#python #pandas #string #jupyter-notebook
#питон #панды #строка #jupyter-записная книжка
Вопрос:
Мне трудно избавиться от веревки из моей серии pandas. Я бы хотел удалить первые две строки ‘-‘, но хочу сохранить последние две числовые цели. Пример приведен ниже.
import pandas as pd
temp = pd.Series(['-', '-', '-0.3', '-0.9'])
print(temp)
Out[135]:
0 -
1 -
2 -0.3
3 -0.9
dtype: object
Не может использоваться temp.str.replace("-", "")
, так как он также удаляет знак минус из двух последних числовых целей. Кто-нибудь может мне помочь с этим. Заранее спасибо!
Комментарии:
1. Вы можете использовать регулярное выражение, чтобы иметь больше контроля над тем, как заменить текст:
temp.str.replace(r'-$', '')
будет работать для вас.
Ответ №1:
Используйте регулярное выражение:
temp = pd.Series(['-', '-', '-0.3', '-0.9'])
print(temp.str.replace('^-
Вывод
0
1
2 -0.3
3 -0.9
dtype: object
Или просто используйте replace:
print(temp.replace('-', '')) # notice that there is no .str
Вывод
0
1
2 -0.3
3 -0.9
dtype: object
Ответ №2:
Вы можете преобразовывать строки в числа:
pd.to_numeric(temp, errors='coerce').fillna('')
Вывод:
0
1
2 -0.3
3 -0.9
Ответ №3:
Вы можете удалить ненужную строку следующим образом:
import pandas as pd
temp = pd.Series(['-', '-', '-0.3', '-0.9'])
# this will drop the string that match '-'
new_temp= temp[temp != '-']
print(new_temp)
Вывод:
2 -0.3
3 -0.9
dtype: object
ссылка: Здесь
, '', regex=True))
Вывод
Или просто используйте replace:
Вывод
Ответ №2:
Вы можете преобразовывать строки в числа:
Вывод: