如何使用具有不同 ID 和时间的面板数据的平均值创建一个新的数据框?

How to create a new dataframe with an average of panel data with different IDs and times?

我有一个数据集,df 如下所示:

Date Code City State Ranking
2020-01 10001 Los Angeles CA 0.852
2020-02 10001 Los Angeles CA 0.945
2020-03 10001 Los Angeles CA 0.991
2020-01 20002 Houston TX 0.134
2020-02 20002 Houston TX 0.234
2020-03 20002 Houston TX 0.667
... ... ... ... ...
2021-07 10001 Los Angeles CA 0.678
2021-07 20002 Houston TX 0.721

我有多个城市,每个城市都包含一个 Ranking,范围从 2020-012021-07。我想创建一个新的数据框,我在其中取每个城市随时间排名的平均值。本质上,我的新数据集将是:

Code Average Ranking
10001 0.8665
20002 0.439

我不知道如何提取我的信息。我最想做的事情仍然没有给我正确的输出:

df_avg = df.groupby(['Code','Date'],as_index=False)['Ranking'].mean().rename(columns={'Ranking':'Avg_Ranking'})


我如何创建这个新的数据框 df_avg,它有两列,CodeAverage Ranking,其中 Average Ranking 是平均值 Ranking每个 Code?

只需从您的 groupby 键中删除 Date。在这种情况下,您需要每个 Code 列中所有行的列 Ranking 的平均值,因此您的 groupby 键应该仅为 Code.

df_avg = df.groupby(['Code'],as_index=False)['Ranking'].mean().rename(columns={'Ranking':'Avg_Ranking'})