我有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 / date匹配对都要加上权重(因此是加权平均值)。
是否有简单的数据框命令来执行此操作?
答案 0 :(得分:1)
如果我对您的理解正确,我们可以执行以下操作。
首先使用pandas.concatenate
将数据帧连接为一个数据帧,同时使用DataFrame.reset_index
重置索引。
然后我们在列Date & IDs
上使用Dataframe.groupby
并取mean
的{{1}}:
Values
哪种产量:
df_all = pd.concat([df1.reset_index(), df2.reset_index()])
df_all = df_all.groupby(['Date', 'IDs'], as_index=False)['Values'].mean()