Python - Pandas - 将特定函数应用于给定级别 - 多索引数据帧
Python - Pandas - Apply specific function to a given Level - Multi Index DataFrame
我有一个多索引 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 层)+ 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
我有一个多索引 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 层)+ 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