Python 填充多索引系列

Python 填充多索引系列,python,pandas,Python,Pandas,我有一个装满数据的熊猫数据框 import pandas as pd import numpy as np varNames = ["point1","point2","point3","point4","point5"] df = pd.DataFrame(np.random.randn(5,2),index=varNames,columns=["data1","data2"]) 我想创建一个系列,其中包含一个由此创建的多索引。我可以做的索引是: iterables=[["point1",

我有一个装满数据的熊猫数据框

import pandas as pd
import numpy as np

varNames = ["point1","point2","point3","point4","point5"]
df = pd.DataFrame(np.random.randn(5,2),index=varNames,columns=["data1","data2"])
我想创建一个系列,其中包含一个由此创建的多索引。我可以做的索引是:

iterables=[["point1","point2","point3"],["point4","point5"]]
index=pd.MultiIndex.from_product(iterables, names=['numerator', 'denominator'])
但是我不知道如何填写这个系列。我在找像这样的东西

s = pd.Series(max(df.loc[index["numerator"]]/df.loc[index["denominator"]]),index=index)
我想把第一个数据框中列为分子的每一行,除以第一个数据框中列为分母的每一行,从结果行中找到最大值,并将其存储在序列中的相关位置(s[variableN,variableM])

这是我第一次使用这个多索引的东西,除了逐行遍历序列,计算出值并存储它,类似的(我想,我想我还不能完全理解这一点),我不知道怎么做

您可以使用参数
级别
最大值

df3 = df.reindex(index, level=0).div(df.reindex(index, level=1)).max(level=0)
样本:

np.random.seed(456)
varNames = ["point1","point2","point3","point4","point5"]
df = pd.DataFrame(np.random.randn(5,2),index=varNames,columns=["data1","data2"])
print (df)
           data1     data2
point1 -0.668129 -0.498210
point2  0.618576  0.568692
point3  1.350509  1.629589
point4  0.301966  0.449483
point5 -0.345811 -0.315231

iterables=[["point1","point2","point3"],["point4","point5"]]
index=pd.MultiIndex.from_product(iterables, names=['numerator', 'denominator'])


您可以将参数
级别
最大值
一起使用:

df3 = df.reindex(index, level=0).div(df.reindex(index, level=1)).max(level=0)
样本:

np.random.seed(456)
varNames = ["point1","point2","point3","point4","point5"]
df = pd.DataFrame(np.random.randn(5,2),index=varNames,columns=["data1","data2"])
print (df)
           data1     data2
point1 -0.668129 -0.498210
point2  0.618576  0.568692
point3  1.350509  1.629589
point4  0.301966  0.449483
point5 -0.345811 -0.315231

iterables=[["point1","point2","point3"],["point4","point5"]]
index=pd.MultiIndex.from_product(iterables, names=['numerator', 'denominator'])



那个几乎奏效了。返回仅由分子索引的数据帧。我要找的是一个分子/分母组合的多重索引。这很好用,谢谢。现在我需要做的就是弄清楚发生了什么:)那。。。几乎奏效了。返回仅由分子索引的数据帧。我要找的是一个分子/分母组合的多重索引。这很好用,谢谢。现在我需要做的就是弄清楚发生了什么:)