It seems that quantile () is not ignoring the inconvenience columns and is trying to find quantiles for your text columns. Here's a trivial example:
In [75]: df = DataFrame({'col1':['A','A','B','B'], 'col2':[1,2,3,4]}) In [76]: df Out[76]: col1 col2 0 A 1 1 A 2 2 B 3 3 B 4 In [77]: df.groupby('col1').quantile() ValueError: ('could not convert string to float: A', u'occurred at index col1')
However, when I multiply only numeric columns, I get:
In [78]: df.groupby('col1')['col2'].quantile() Out[78]: col1 A 1.5 B 3.5
source share