округлить до 5 - PullRequest
       3

округлить до 5

1 голос
/ 15 февраля 2020

Я пытаюсь округлить значения до значения, кратного 5 Например:

df
values    rounded_values (expected column)
    10                10
    11                15
    13                15
    22                25
    21                25
    34                35  
    35                35

Ответы [ 4 ]

2 голосов
/ 15 февраля 2020

Базовым контейнером столбца Pandas является массив numpy, поэтому вы можете просто использовать numpy здесь:

import numpy as np

df['rounded_values'] = np.round_((np.ceil(df['values']/5)*5)).astype(int)
2 голосов
/ 15 февраля 2020

Попробуйте:

df["rounded_values"] = ((df.values+4)//5)*5
print(df)
   values  rounded_values
0      10              10
1      11              15
2      13              15
3      22              25
4      21              25
5      34              35
6      35              35
0 голосов
/ 15 февраля 2020

Это можно сделать просто, сначала разделив на 5, затем вызвав math.ceil, затем умножив на 5:

>>>import math
>>>round5 = lambda n: math.ceil(n / 5) * 5
>>> round5(22)
25
>>> round5(21)
25
>>> round5(35)
35
>>> round5(10)
10
>>> round5(11)
15
>>> round5(15)
15

0 голосов
/ 15 февраля 2020

Использовать мод:

def round_to5(x):
    if x%5 == 0:
        return x
    else:
        return x + (5 - x%5)

df['round_values'] = df['values'].apply(lambda x: round_to5(x))

Вывод:

  values    round_values
0   10          10
1   12          15
2   24          25
3   27          30
...