Как выборочно удалить строку из серии pandas?

#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:

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


Вывод:


Ответ №3:

Вы можете удалить ненужную строку следующим образом:


Вывод:


ссылка: Здесь