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

时间:2017-12-14 13:03:04

标签: 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'])

它提供以下输出:

enter image description here

我希望计算我的数据的复合总和,以获得此特定输出。例如,对于美国。 12.2,然后12.2 + 12.5然后12.2 + 12.5 + 12.6

enter image description here

1 个答案:

答案 0 :(得分:2)

好像你想要一个groupby(沿着0 th 级别)+ cumsum -

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