Python 在DatetimeIndexResamplerGroupby上获取组方法

Python 在DatetimeIndexResamplerGroupby上获取组方法,python,pandas,Python,Pandas,问题:get\u group方法是否适用于具有DatetimeIndexResamplerGroupby索引的数据帧?如果是,那么适当的语法是什么 样本数据: 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(

问题:get\u group方法是否适用于具有DatetimeIndexResamplerGroupby索引的数据帧?如果是,那么适当的语法是什么

样本数据:

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
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(数据,列=列表('abc')+['dates']))
gb3=df1.set_index('dates').groupby('a').resample('D'))
DatetimeIndexResamplerGroupby[freq=,axis=0,closed=left,label=left,convention=e,base=0]
gb3.sum()
a、b、c
约会
2   2017-01-01  2.0 4.0 1.0
2017-01-02楠楠
2017-01-03楠楠
2017-01-04楠楠
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对象

我尝试过各种方法,典型的错误是
TypeError:Cannot convert input[(0,1)]of type to Timestamp

下面应该是您要找的(如果我正确理解了问题):


我相信在这种情况下,resample/pd.gropper可以互换使用(如果我错了,有人会纠正我)。让我知道这是否适合您。

也许您可以澄清一下您的问题。仅供参考,按时间分组最常见的方法是使用.resample()函数,您也可以在此处查看文档:此注释没有帮助。数据帧是“重采样('D')”,如示例代码所示。你想澄清问题的哪一部分?因为你没有得到任何答案,我认为需要澄清一下。
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