Мой фрейм данных выглядит так:
df.head(6)
City Date Total_Cases Country State
0 Autauga 2020-01-29 0 US Alabama
1 Autauga 2020-01-30 3 US Alabama
2 Autauga 2020-01-31 5 US Alabama
3 Weston 2020-01-01 0 US Wyoming
4 Weston 2020-01-02 2 US Wyoming
5 Weston 2020-01-03 2 US Wyoming
Я хотел бы вставить новый столбец под названием New_Cases
, который является сегодняшним Total_Cases
минус Total_Cases
со вчерашнего дня по городам/штатам.
City Date Total_Cases New_Cases Country State
0 Autauga 2020-01-29 0 0 US Alabama
1 Autauga 2020-01-30 3 3 US Alabama
2 Autauga 2020-01-31 5 2 US Alabama
3 Weston 2020-01-01 0 0 US Wyoming
4 Weston 2020-01-02 2 2 US Wyoming
5 Weston 2020-01-03 2 0 US Wyoming
Вы можете попробовать использовать shift
здесь:
df['New_Cases'] = df.Total_Cases - df.groupby(['City', 'State'])['Total_Cases'].shift(1).fillna(0)
Я думаю, что это должно быть больше похоже на df.Total_Cases - df.groupby(["City", "State"])["Total_Cases"].shift(1).fillna(0)
, предполагая, что дата также отсортирована
Тим Бигелейзен, в вашем коде отсутствовала часть перед знаком минус, которую добавил @sammywemmy. Большое спасибо, ребята, за вашу помощь. Также другой участник сообщества сослался на аналогичное решение в другом сообщении, используя функцию diff().
прохладный...........