我有一个熊猫系列series
。如果我想获得元素层或者天花板,是否有内置方法或者我必须编写函数并使用apply?我问,因为数据很大,所以我很欣赏效率。关于熊猫一揽子计划,还没有提出这个问题。
答案 0 :(得分:43)
您可以使用NumPy的内置方法执行此操作:np.ceil(series)
或np.floor(series)
。
两者都返回一个Series对象(不是数组),因此保留了索引信息。
答案 1 :(得分:12)
你可以使用NumPy的底板做这样的事情,例如dataframe
:
floored_data = data.apply(np.floor)
目前无法对其进行测试,但实际可行的解决方案可能并不遥远。
答案 2 :(得分:7)
我是OP,但我尝试了这个并且它有效:
np.floor(series)
答案 3 :(得分:3)
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)
。