#python #pandas #dataframe #loops #for-loop
#python #pandas #фрейм данных #циклы #цикл for
Вопрос:
У меня есть вопрос относительно использования цикла double for. Моя идея состоит в том, чтобы перебирать время и местоположение, скажем, у меня есть 10 дней и 10 местоположений, и я хочу сохранять количество клиентов в каждом местоположении каждый день. Я сохраняю количество клиентов в пустом df с индексом как time. Тем не менее, у меня возникли небольшие проблемы с циклическим перебором 10 местоположений. Ниже приведен ручной метод, который я использовал:
period = 10
location = 10
periods = np.arange(period)
locations = np.arange(location)
default_customers = 500
df = pd.DataFrame(index = periods, columns = 'customers1','customers2').fillna(0)
for i in locations:
for j in periods:
df['customers1'][j] = default_customers
df['customers2'][j] = default_customers
Можно ли перебирать местоположения вместо того, чтобы создавать столбец для каждого из них? Спасибо!
Редактировать: ожидаемый фрейм данных будет таким, чтобы я мог ежедневно отслеживать количество клиентов и атрибутов для каждого местоположения. Я думаю, это сработает, если я просто создам 10 столбцов, но должен быть способ упростить это.
day|sales at loc1|sales at loc2|Avg sale price loc1|Avg sale price loc2
...|... | ... |... |...
Комментарии:
1. Можете ли вы привести пример фрейма данных о том, как вы ожидаете / хотели бы, чтобы результат выглядел?
2. покажите ожидаемый фрейм данных. было бы полезно дать ответ
3. Спасибо, я отредактировал его, чтобы добавить df, который я вывел.
4. Как ваш желаемый результат соотносится с вашим опубликованным кодом? Нет продаж, среднего значения или клиентов. Кажется, что вы заполняете каждую ячейку фрейма данных 500.
Ответ №1:
На всякий случай, если кто-нибудь когда-нибудь столкнется с такой же проблемой. В итоге я использовал функцию для перебора дней, а затем использовал цикл для каждого местоположения, которое вызывает эту функцию. Вероятно, не лучшее решение, но оно выполняет свою работу. Пример:
for i in locations:
run function(loop for j in periods)