在multiindex上使用pandas groupby-如何处理数据并将更改传播到原始数据帧中?

时间:2018-10-19 06:32:48

标签: python pandas multi-index

尝试多索引数据框,我的数据框(名为摘要)具有7个不同的索引,其中第四个是Temperature。我的数据是['mean','std','count']:

                                         Result value
                                                 mean     std    count
Ind0 Ind1 Ind2 Temp Ind4 Ind5 Ind6
V1   1    4.0  70   -1   S11  T40                40.2     2.1        2
               50   -1   S11  T40                20.6     0.5        2
               20   -1   S11  T40                34.1     1.4        2

对于其他索引匹配的每种情况,我使用groupby进行以下操作,使用添加到每个数据点的参考温度的结果(然后可以删除参考行上的内容):

   for ind, temp_summary in summary.groupby(level=[0,1,2,4,5,6]):
        temp_summary.loc[['ref_mean','ref_std','ref_count']]=temp_summary.loc[ref_temp,['mean','std','count']]
        print(ind, temp_summary)

但是,由于ref_temp不在索引中,我得到了一个错误,这是有道理的,因为并非所有匹配的实例在ref_temp都有一个数据点,但是我不知道如何解决这个问题,而只对那些实例执行操作有参考。

所以我实际上在这里有三个问题,是这个问题的新手:

  1. 我实际上如何仅针对存在引用的那些实例在每个索引的基础上执行这种操作?
  2. 如何将这些更改传播到原始数据帧,或者从我要遍历的小节中重建这些更改?
  3. 对于没有使用参考温度的数据点的实例,我想使用只有其他两个索引(前两个)匹配的实例的所有参考数据点的平均值(然后保证至少会有一个参考数据点)。我可以/应该采用与上述类似的方式吗?

当然,我的总体方法可能不是最好的,我应该使用更好的方法。如果有多种可行的方法可以做到这一点,则最快的方法(从计算角度而言)将是首选,因为时间是此应用程序中的一个问题。

0 个答案:

没有答案