gpt4 book ai didi

python - 乘以多索引 Pandas 系列和 DataFrame

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:40 26 4
gpt4 key购买 nike

我有以下数据框:

>>> Data=pd.DataFrame(index=['A','B'], data=[[20,40],[100,300]], columns=['Var1','Var2'])
>>> Data.index.name='ID1'
>>> Data
Var1 Var2
ID1
A 20 40
B 100 300
>>>

我有以下系列:

>>> MIndex=pd.MultiIndex.from_tuples([('A',1),('B',1),('A',2),('B',3)])
>>> MultSeries=pd.Series(index=MIndex, data=[.6,.7,.4,.3])
>>> MultSeries.index.names=['ID1','ID2']
>>> MultSeries.name='MultFactor'
>>> MultSeries
ID1 ID2
A 1 0.6
B 1 0.7
A 2 0.4
B 3 0.3
Name: MultFactor, dtype: float64
>>>

我想将系列中的每个元素乘以系列中的适当元素。

现在我可以通过将系列转换为数据框然后加入来做到这一点:

>>> d1=pd.DataFrame(MultSeries).join(Data)
>>> d1[['Var1','Var2']].multiply(d1['MultFactor'],axis=0)
Var1 Var2
ID1 ID2
A 1 12 24
B 1 70 210
A 2 8 16
B 3 30 90
>>>

这是最好的方法吗?有没有办法不用连接就可以做到这一点?

最佳答案

您可以使用 mul带参数 level:

In [83]: Data.mul(MultSeries, axis=0, level='ID1')
Out[83]:
Var1 Var2
ID1 ID2
A 1 12 24
B 1 70 210
A 2 8 16
B 3 30 90

关于python - 乘以多索引 Pandas 系列和 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34516509/

26 4 0
文章推荐: javascript - 关于使用 jQuery 和 JSON 在 div 中设置背景...
文章推荐: python - 如何改进小文本的分类
文章推荐: javascript - 如何使
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com