Прежде всего, не запускайте al oop поверх pandas DataFrame, даже если это сработает, это будет мучительно медленно. Если необходимо, используйте метод pandas.DataFrame.iterrows
, который намного быстрее, чем al oop, но, тем не менее, будет довольно медленным.
Для вашей проблемы, предполагая, что ведро равнорасположено, вы можете сделать что-то вроде этого:
import numpy as np
df5['price'] = (np.digitize(df5.price, np.arange(0, 450, 50)))*50
Чтобы ответить на ваш вопрос, почему вы получаете KeyError
, возможно, из-за того, что ваши индексы данных отключены. Рассмотрите возможность изменения df5['price'][i]
на df5['price'].iloc[i]