Я пытаюсь применить функцию к pandas
кадру данных.В моей функции есть блок try/except
для перехвата исключений, таких как ZeroDivisionError
, но он не работает.
Фрейм данных содержит более 100 столбцов.И фактическая функция должна применяться к каждой строке путем выбора подмножества столбцов
Ниже приведен мой код
Функция:
import pandas as pd
import numpy as np
def d(x):
x0=22/7
try:
return x0/x
except:
return 0
df=pd.DataFrame({'a':[0,2,3,4],'b':[0,3,4,5]})
df
Out[174]:
a b
0 0 0
1 2 3
2 3 4
3 4 5
После применения функциикак
df.apply(lambda x:d(x))
Out[173]:
a b
0 inf inf
1 1.571429 1.047619
2 1.047619 0.785714
3 0.785714 0.628571
Ожидается 0
вместо inf
по индексу 0
Out[173]:
a b
0 0.000000 0.000000
1 1.571429 1.047619
2 1.047619 0.785714
3 0.785714 0.628571
Может кто-нибудь сообщить мне, что я здесь упускаю.Это расстраивает ....: @