J'ai une pandas series series
. Si je veux obtenir le sol ou le plafond par élément, y a-t-il une méthode intégrée ou dois-je écrire la fonction et utiliser Je demande parce que les données sont volumineuses, donc j'apprécie l'efficacité. Cette question n'a pas non plus été posée à propos du package Pandas.
Pour ce faire, vous pouvez utiliser les méthodes intégrées de NumPy: np.ceil(series)
ou np.floor(series)
.
Les deux renvoient un objet Series (pas un tableau) afin que les informations d'index soient préservées.
Vous pouvez faire quelque chose comme ça en utilisant le plancher de NumPy, par exemple, avec un dataframe
:
floored_data = data.apply(np.floor)
Je ne peux pas le tester pour le moment, mais une solution réelle et fonctionnelle pourrait ne pas être loin de là.
Je suis l'OP, mais j'ai essayé et cela a fonctionné:
np.floor(series)
clip_lower
/ clip_upper
Avec Pandas, vous pouvez définir un plancher via clip_lower
Ou un plafond via 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
Prend en charge des fonctionnalités plus généralisées, par exemple appliquer et recouvrir un plafond simultanément , par ex. s.clip(-1, 1)
.