@@ -1504,6 +1504,31 @@ def test_frame_describe_tupleindex(self):
1504
1504
expected .index .set_names (result .index .names , inplace = True )
1505
1505
assert_frame_equal (result , expected )
1506
1506
1507
+ def test_frame_describe_multiindex_level_not_as_column (self ):
1508
+ # GH 4792
1509
+ prices = {pd .Timestamp ('2011-01-06 10:59:05' , tz = None ): 24990 ,
1510
+ pd .Timestamp ('2011-01-06 12:43:33' , tz = None ): 25499 ,
1511
+ pd .Timestamp ('2011-01-06 12:54:09' , tz = None ): 25499 }
1512
+ volumes = {pd .Timestamp ('2011-01-06 10:59:05' , tz = None ): 1500000000 ,
1513
+ pd .Timestamp ('2011-01-06 12:43:33' , tz = None ): 5000000000 ,
1514
+ pd .Timestamp ('2011-01-06 12:54:09' , tz = None ): 100000000 }
1515
+ df = pd .DataFrame ({'PRICE' : prices ,
1516
+ 'VOLUME' : volumes })
1517
+ result = df .groupby ('PRICE' ).describe ()
1518
+ expected_index = pd .MultiIndex (levels = [[24990 , 25499 ],
1519
+ ['count' , 'mean' , 'std' ,
1520
+ 'min' , '25%' , '50%' ,
1521
+ '75%' , 'max' ]],
1522
+ labels = [[0 ] * 8 + [1 ] * 8 ,
1523
+ [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] * 2 ],
1524
+ names = ['PRICE' , None ])
1525
+ data = (df [df .PRICE == 24990 ].VOLUME .describe ().values .tolist () +
1526
+ df [df .PRICE == 25499 ].VOLUME .describe ().values .tolist ())
1527
+ expected = pd .DataFrame (data ,
1528
+ index = expected_index ,
1529
+ columns = ["VOLUME" ])
1530
+ tm .assert_frame_equal (result , expected )
1531
+
1507
1532
def test_frame_groupby (self ):
1508
1533
grouped = self .tsframe .groupby (lambda x : x .weekday ())
1509
1534
0 commit comments