我正在研究COVID-19数据集,其中包含自3月以来每个城市每个月的最后一天的总病例和总死亡人数。但是我想创建一个列,告诉我这几个月中每个城市的新病例数。
我的逻辑是:如果位置p的'city_ibge_code'
列中单元格中的值与位置p-1中的值相同,则应创建一个新列,该列为案件在两个月内。而且,如果值不同(表明不同的城市),只需将该值传递到新列即可。
casos_full
:是包含城市以及三月,四月,五月,六月,七月,八月和下旬的病例数和死亡人数的数据框。
city_ibge_code
:是数据框中每个城市的代码-每个城市都有唯一的代码。
还有一个“ date
”列-代表每月的最后一天
for rows in casos_full:
if rows['city_ibge_code'] == rows['city_ibge_code'].shift(1):
rows['New Cases'] = rows['last_available_confirmed'] - rows['last_available_confirmed'].shift(1)
else:
rows['New Cases'] = rows['last_available_confirmed']
答案 0 :(得分:0)
rows
这是该行的视图。您需要更新实际数据框。如果我正确理解了您的问题。
for i, rows in enumerate(casos_full):
if rows['city_ibge_code'] == rows['city_ibge_code'].shift(1):
casos_full[i]['New Cases'] = rows['last_available_confirmed'] - rows['last_available_confirmed'].shift(1)
else:
casos_full[i]['New Cases'] = rows['last_available_confirmed']
请更加精确地解决您的问题,以便我们提供帮助。