Не могу сделать и установить операцию строки в кадре данных Pandas, пока я перебираю его - PullRequest
0 голосов
/ 17 октября 2019

Итак, я хочу сделать еженедельное изменение / сравнение (которое я могу сделать с помощью смены), суть в том, что я хочу сравнивать только недели для каждой категории (поэтому, когда следующая категория начинается на неделе 1, я неЯ не хочу сравнивать это с последней неделей категории 51).

|  Category  |   Weeknumber   |  BruttoTonnes  |
     Apple           1                15        
     ...            ...              ...
     Apple           51                8
     Pear            1                 5
     ...            ...              ...
     Pear            51               12

Вот мое решение, которое, к сожалению, ничего не делает с моим фреймом данных по неизвестным причинам:

for element in df.Category.unique():
    print(df[df.Category == str(element)]['Category']) # This one works, so that is all good  
    df[df.Category == str(element)]['WeekOverWeek%'] = ((df[df.Category == str(element)]['BruttoTonnes'].shift(1)/df[df.Category == str(element)]['BruttoTonnes'])-1)*100

Результатом этого является ничто. Нет ошибки, но нет и результата.

1 Ответ

1 голос
/ 18 октября 2019

Выполняя слияние с самим собой, я избегаю циклов, поэтому все это векторизовано, поэтому должно быть быстрымне хотите использовать df.drop ()

В идеале вы должны также включать в данные дату или год, чтобы избежать поиска недельного тоннажа за неправильный год.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...