2017-01-05 7 views
1

У меня есть набор данных, который является отношением двух чисел типа float. Некоторые значения имеют значение inf для бесконечности (деление на ноль). Как мне работать с pd.qcut/pd.cut с inf значениями?pd.qcut со значениями, которые являются inf (бесконечность) ValueError: края бина должны быть уникальными:

Доступ к моим данным можно получить here.

q = pd.qcut(df['ratio'], 10) 

ValueError: Bin edges must be unique: array([ 1.20089207e+03, 6.02984295e+04, 1.26445577e+05, 
     2.29982770e+05, 5.13176079e+05, 1.28794976e+06, 
     4.96001538e+06,    nan,    nan, 
        nan,    inf]) 

ответ

1

можно replacenp.inf с np.nan затем dropna

q = pd.qcut(df.ratio.replace(np.inf, np.nan).dropna(), 10) 
+0

Это здорово. Однако я не хочу падать. Есть ли способ просто игнорировать их в qcut? В качестве альтернативы, поскольку inf является очень большим числом, в идеале им следует назначить самый высокий бит. Что-то вроде этого возможно? – codingknob

+0

То, что я сделал, это значение 10 для всех индексов, где отношение было inf. Так что это работает. – codingknob

Смежные вопросы