Подтвердить что ты не робот

Пол или потолок серии pandas в python?

У меня есть серия pandas series. Если я хочу получить элементарный пол или потолок, есть ли встроенный метод или мне нужно написать функцию и использовать ее? Я спрашиваю, потому что данные большие, поэтому я ценю эффективность. Также этот вопрос не задан в отношении пакета pandas.

4b9b3361

Ответ 1

clip_lower/ clip_upper

С Pandas вы можете установить этаж через clip_lower или потолок через clip_upper:

s = pd.Series([-1, 0, -5, 3])

print(s.clip_lower(0))
# 0    0
# 1    0
# 2    0
# 3    3
# dtype: int64

print(s.clip_upper(0))
# 0   -1
# 1    0
# 2   -5
# 3    0
# dtype: int64

clip

pd.Series.clip поддерживает более обобщенную функциональность, например, одновременное применение и покрытие потолка, например, s.clip(-1, 1).

Ответ 2

Вы можете использовать встроенные методы NumPy: np.ceil(series) или np.floor(series).

Оба возвращают объект Series (а не массив), поэтому информация индекса сохраняется.

Ответ 3

Вы можете сделать что-то вроде этого, используя пол NumPy, например, с dataframe:

floored_data = data.apply(np.floor)

Невозможно протестировать его прямо сейчас, но фактическое и рабочее решение может быть далеко от него.

Ответ 4

Я OP, но я пробовал это, и он работал:

np.floor(series)