У меня есть этот код:
for row in range(len(df[col])):
df[col][row] = int(df[col][row].replace(',',''))
df[col] = df[col].astype(int)
df[col] = np.round(df[col]/500)*500 #rounds the numbers to the closest 500 multiple.
df[col] = df[col].astype(int) #round returns a float, this turns it back to int after rounding
В for l oop: df [col] [row] .replace (',', '') в основном удаляет запятые из чисел, которые хранится в виде объектов, например 1,430, а затем преобразует его в int, например, 1430
Затем мне нужно добавить df [col] = df [col] .astype (int), потому что в противном случае следующий np.round ( ) выдает ошибку: объект 'float' не имеет атрибута 'rint'
Дело в том, что после np.round () мне нужно снова добавить .astype (int), потому что раунд, как я он возвращает число с плавающей запятой, но мне нужны целые числа.
Я вижу, что выполнение этого довольно долгое, даже если мой фрейм данных составляет всего 32 x 17
все равно есть может улучшить ??