2017-04-16 78 views
0

問題: get_group方法是否在具有DatetimeIndexResamplerGroupby索引的DataFrame上工作?如果是這樣,什麼是適當的語法?DatetimeIndexResamplerGroupby上的Pandas get_group方法

的樣本數據:

data = [[2, 4, 1, datetime.datetime(2017, 1, 1)], 
     [2, 4, 2, datetime.datetime(2017, 1, 5)], 
     [3, 4, 1, datetime.datetime(2017, 1, 7)]] 
df1 = pd.DataFrame(data, columns=list('abc') + ['dates']) 

gb3 = df1.set_index('dates').groupby('a').resample('D') 
DatetimeIndexResamplerGroupby [freq=<Day>, axis=0, closed=left, label=left, convention=e, base=0] 

gb3.sum() 

        a b c 
a dates   
2 2017-01-01 2.0 4.0 1.0 
    2017-01-02 NaN NaN NaN 
    2017-01-03 NaN NaN NaN 
    2017-01-04 NaN NaN NaN 
    2017-01-05 2.0 4.0 2.0 
3 2017-01-07 3.0 4.0 1.0 

的get_group方法爲我工作在一個pandas.core.groupby.DataFrameGroupBy object。 我已經試過各種方法,典型的錯誤是TypeError: Cannot convert input [(0, 1)] of type <class 'tuple'> to Timestamp

+0

也許你可以澄清一下你的問題。 FYI在熊貓中按時間分組的最常用方式是使用.resample()函數,也可以在這裏查看文檔:http://pandas.pydata.org/pandas-docs/stable/timeseries.html – edyvedy13

+0

This評論沒有幫助。 DataFrame是'resample('D')',如示例代碼所示。問題的哪個部分需要澄清? – ac2001

+0

由於您沒有得到任何答案,我認爲這需要一些澄清。 – edyvedy13

回答

0

下面的應該是你要找的東西(如果我理解正確的問題):

import pandas as pd 
import datetime 
​ 

data = [[2, 4, 1, datetime.datetime(2017, 1, 1)], 
     [2, 4, 2, datetime.datetime(2017, 1, 5)], 
     [3, 4, 1, datetime.datetime(2017, 1, 7)]] 
df1 = pd.DataFrame(data, columns=list('abc') + ['dates']) 
gb3 = df1.groupby(['a',pd.Grouper('dates')]) 
gb3.get_group((2, '2017-01-01')) 
​ 
Out[14]: 
a b c dates 
0 2 4 1 2017-01-01 

我相信重新取樣/ pd.Grouper在這種情況下可以交替使用(如果我錯了,有人糾正我)。讓我知道這是否適合你。

相關問題