web-dev-qa-db-fra.com

Plancher ou plafond d'une série pandas en python?

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.

31
wolfsatthedoor

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.

48
Alex Riley

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à.

13
Jivan

Je suis l'OP, mais j'ai essayé et cela a fonctionné:

np.floor(series)
7
wolfsatthedoor

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).

3
jpp