0

我有以下数据框:

df = pd.DataFrame({
'Buyer': 'Carl Mark Carl Joe Joe Carl'.split(),
'Trades': [1,3,5,8,9,3],
'Date' : [
    DT.datetime(2013,1,1,13,0),
    DT.datetime(2013,1,1,13,5),
    DT.datetime(2013,1,1,20,0),
    DT.datetime(2013,1,2,10,0),
    DT.datetime(2013,1,2,12,0),                                      
    DT.datetime(2013,1,2,14,0),
    ]})

现在我想按天分组并计算每个交易者的平均交易次数。为此,我使用 groupby 函数:

gr = df.groupby([df.Date.map(lambda d: d.date()), 'Buyer']).mean()

是否有可能将生成的 'gr' DataFrame 转换为带有 PeriodIndex 的 DataFrame,以便我可以使用 resample 函数来计算每周和每月的平均值?

重要提示:我需要重新采样“gr”数据框而不是原始“df”

我将非常感谢任何帮助。

谢谢

安迪

4

1 回答 1

0

首先,将索引(带有日期对象)转换为 DatetimeIndex。然后将 DatetimeIndex 转换为 PeriodIndex。

In [103]: gr.reset_index(level=1)
Out[103]: 
           Buyer  Trades
Date                        
2013-01-01  Carl     3.0 
2013-01-01  Mark     3.0 
2013-01-02  Carl     3.0 
2013-01-02   Joe     8.5 

In [104]: gr = gr.reset_index(level=1)

In [105]: gr.index = gr.index.to_datetime().to_period('M')

In [106]: gr
Out[106]: 
        Buyer  Trades
2013-01  Carl     3.0 
2013-01  Mark     3.0 
2013-01  Carl     3.0 
2013-01   Joe     8.5
于 2013-06-04T09:17:45.403 回答