如何在 Python Pandas 中将 MultiIndex 数据帧与权重合并



我有 3 个多索引数据帧,结构如下:

     Dataframe1:
     Date      IDs     Values
     Date1     ID4     0.5
               ID5     2.3
               ID6     3.1
     Date2     ID1     1.2
               ID4     5.1
     ...

     Dataframe2:
     Date      IDs     Values
     Date1     ID1     2.5
               ID2     3.3
               ID4     4.1
     Date2     ID3     5.2
               ID4     1.1
     ...
same for dataframe3

日期和 ID 大多在每个实例化中重复,但可能有一些没有完全对齐。

我需要将所有 3 个合并到一个具有相同结构的数据帧中,但每个 id/日期匹配对都加起来带有权重(因此是加权平均值(。

有没有一个简单的数据帧命令来执行此操作?

如果我理解正确,我们可以执行以下操作。

首先将数据帧连接到一个具有pandas.concatenate的数据帧,同时我们使用DataFrame.reset_index重置索引。

然后我们在列上使用Dataframe.groupby Date & IDs并取Valuesmean

df_all = pd.concat([df1.reset_index(), df2.reset_index()])
df_all = df_all.groupby(['Date', 'IDs'], as_index=False)['Values'].mean()

这会产生:

print(df_all)
    Date  IDs  Values
0  Date1  ID1     2.5
1  Date1  ID2     3.3
2  Date1  ID4     2.3
3  Date1  ID5     2.3
4  Date1  ID6     3.1
5  Date2  ID1     1.2
6  Date2  ID3     5.2
7  Date2  ID4     3.1

最新更新