Двойной цикл for в pandas, где индекс равен времени в днях

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