我发现当前 Panadas 的 groupby 方法有一个非常奇怪的行为。让我们采用以下 DataFrame:
df = pd.DataFrame({
'Branch' : 'A A A A A B'.split(),
'Buyer': 'Carl Mark Carl Joe Joe Carl'.split(),
'Quantity': [1,3,5,8,9,3],
'Date' : [
DT.datetime(2013,1,1,13,0),
DT.datetime(2013,1,1,13,5),
DT.datetime(2013,10,1,20,0),
DT.datetime(2013,10,2,10,0),
DT.datetime(2013,12,2,12,0),
DT.datetime(2013,12,2,14,0),
]})
如果我现在想按周和分支分组,使用:
gr = df.groupby([df.Date.map(lambda d: d.week), 'Branch'])
...并使用以下方法查看创建的子帧:
def testgr(df):
print df
gr.apply(testgr)
在仅出现一次的其他组中,我得到了第一个(以下)组的两倍:
Branch Buyer Date Quantity
0 A Carl 2013-01-01 13:00:00 1
1 A Mark 2013-01-01 13:05:00 3
我在这里错过了什么吗?
非常感谢
安迪