Python-Pandas-将特定函数应用于给定级别-多索引数据框架

人气:51 发布:2023-01-03 标签: python pandas dataframe multi-index

问题描述

我有一个多索引DataFrame,并且我希望仅对分配给我的一个级别的向量应用一些计算。

使用以下代码:

import pandas as pd
import datetime
ticker_date = [('US',datetime.date.today()-datetime.timedelta(3)),
('US',datetime.date.today()-datetime.timedelta(2)),
('US',datetime.date.today()-datetime.timedelta(1)),
('EU',datetime.date.today()-datetime.timedelta(3)),
('EU',datetime.date.today()-datetime.timedelta(2)),
('EU',datetime.date.today()-datetime.timedelta(1))]
index_df = pd.MultiIndex.from_tuples(ticker_date)
example = pd.DataFrame([12.2,12.5,12.6,15.1,15.3,15],index_df,['value'])

它提供以下输出:

我希望计算我的数据的复合和,以获得这个特定的输出。比如,对我们来说。12.2,然后是12.2+12.5,然后是12.2+12.5+12.6

推荐答案

您似乎需要groupby(第0层)+-

df.groupby(level=0).cumsum()

               value
US 2017-12-11   12.2
   2017-12-12   24.7
   2017-12-13   37.3
EU 2017-12-11   15.1
   2017-12-12   30.4
   2017-12-13   45.4

17