У меня есть серия pandas series
. Если я хочу получить элементарный пол или потолок, есть ли встроенный метод или мне нужно написать функцию и использовать ее? Я спрашиваю, потому что данные большие, поэтому я ценю эффективность. Также этот вопрос не задан в отношении пакета pandas.
Пол или потолок серии pandas в python?
Ответ 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)