如何在Python Pandas中将MultiIndex Dataframes与权重合并?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Python Pandas中将MultiIndex Dataframes与权重合并?相关的知识,希望对你有一定的参考价值。

我有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匹配对与权重相加(所以加权平均值)。

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

答案

如果我理解正确,我们可以做以下事情。

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

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

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

以上是关于如何在Python Pandas中将MultiIndex Dataframes与权重合并?的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中将字符串转换为pandas数据框[重复]

如何在从 python 触发的电子邮件中将 pandas 数据框附加为 excel

如何在 pandas python 中将字符串转换为日期时间格式?

如何在Python Pandas中将MultiIndex Dataframes与权重合并?

如何通过在 Python 中将两个列表合并为一个,使用 CSV 模块或 Pandas 写入 csv 或 Excel 文件?

在pandas python中将指数或科学数转换为整数