创建一个比较两行的新列

时间:2020-10-28 15:41:09

标签: python pandas

我正在研究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']

1 个答案:

答案 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']

请更加精确地解决您的问题,以便我们提供帮助。