我有一个由城市(列“IBGE”)、日期和数量(列“QTD”)组成的数据集(如图所示)。我试图将三件事提取到一个新列中:每个“IBGE”的开始日期、每个“IBGE”的结束日期和每个“代码”的平均值。
此外,在这样做之前,我应该更改数据集的索引吗?
面板数据不平衡,因此不同的“IBGE”值具有不同的开始和结束日期以及平均值。我如何使用以下信息以列分隔来创建一个新的数据框?我希望数据框看起来像这样:
我在想,也许for while循环可能会获取该信息,但我不确定如何编写代码。
尝试使用groupby
和命名聚合:
#convert DATE column to datetime if needed
df["DATE"] = pd.to_datetime(df["DATE"])
output = df.groupby("IBGE").agg(Start=("DATE","min"),
End=("DATE","max"),
Mean_QTD=("QTD","mean"))