我有一个系列,其中一列是' trans_id'。我试图按小时和分钟对系列进行分组,最后计算每组中唯一的trans_ids数。我做了以下事情:
>>print df.columns
>>Index([u'ts_gmt', u' src', u' dest', u' web', u' trans_id'],
dtype='object')
>>data['ts_gmt'] = pd.to_datetime(df['ts_gmt'])
# convert a datetime col into row index
>>tsData = df.set_index('ts_gmt')
tsData['HOUR'] = tsData.index.hour
tsData['MINUTE'] = tsData.index.minute
tsData.groupby(['HOUR', 'MINUTE'])['trans_id'].apply(lambda x: len(x.unique()))
但是,我收到了这个错误:
KeyError: 'Column not found: trans_id'
>>print tsData.columns
Index([u' src', u' dest', u' web', u' trans_id',
u'HOUR', u'MINUTE'],
dtype='object')
如果我这样做,我可以得到很好的小时和分钟分组:
grps = tsData.groupby(['HOUR', 'MINUTE'])
print grps
但是,此后无法继续。我发现这个链接类似: How to count distinct values in a column of a pandas group by object?
任何建议都表示赞赏。