Вычислить числовые значения из того же столбца для строк с одинаковым идентификатором и сохранить результат вычисления как новый столбец только для строки с самой поздней датой - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок в Python и пытаюсь вычислить% разницы между двумя числами из столбца Единицы для двух разных дат и сохранить его результат в виде значения в новом столбце (My_Calculation_Result). Это значение должно присутствовать только в строках с самой поздней датой.

((Единицы [где дата 2020-02-01] - Единицы [где дата 2020-01-25]) / Единицы [где дата 2020-01-25]) * 100%

Моя исходная структура файла CSV:

Date,       ID,  Name,   Units, 
2020-02-01, 123, Guitar,  200,            
2020-02-01, 456, Drums,   150,            
2020-02-01, 789, Piano,   340,            
2020-01-25, 123, Guitar,  980,            
2020-01-25, 456, Drums,    3,             
2020-01-25, 789, Piano,   300,            

Требуемый вывод в CSV: В выходной файл мне нужно добавить результаты расчета только в строки с самой последней датой.

Date,       ID,  Name,   Units,  My_Calculation_Result
2020-02-01, 123, Guitar,  200,            -79.59%
2020-02-01, 456, Drums,   150,             49.00%
2020-02-01, 789, Piano,   340,             11.76%
2020-01-25, 123, Guitar,  980,            
2020-01-25, 456, Drums,    3,             
2020-01-25, 789, Piano,   300, 

Спасибо за любую помощь с этим заранее!

1 Ответ

1 голос
/ 12 февраля 2020

IIU C:

df['My_Cal_Result'] = df.groupby(['ID']).Units.pct_change(-1)

Выход:

         Date   ID    Name  Units  My_Cal_Result
0  2020-02-01  123  Guitar    200      -0.795918
1  2020-02-01  456   Drums    150      49.000000
2  2020-02-01  789   Piano    340       0.133333
3  2020-01-25  123  Guitar    980            NaN
4  2020-01-25  456   Drums      3            NaN
5  2020-01-25  789   Piano    300            NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...