本文介绍了Pandas Groupy只接受前N个群组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些要按ID分组的DataFrame,例如g.:

I have some DataFrame which I want to group by the ID, e. g.:

import pandas as pd
df = pd.DataFrame({'item_id': ['a', 'a', 'b', 'b', 'b', 'c', 'd'], 'user_id': [1,2,1,1,3,1,5]})
print df

哪个生成:

  item_id  user_id
0       a        1
1       a        2
2       b        1
3       b        1
4       b        3
5       c        1
6       d        5

[7 rows x 2 columns]

我可以轻松按ID分组:

I can easily group by the id:

grouped = df.groupby("item_id")

但是如何仅返回前N个分组对象?例如我只需要前3个唯一的item_id.

But how can I return only the first N group-by objects? E. g. I want only the first 3 unique item_ids.

推荐答案

这是使用list(grouped)的一种方法.

result = [g[1] for g in list(grouped)[:3]]

# 1st
result[0]

  item_id  user_id
0       a        1
1       a        2

# 2nd
result[1]

  item_id  user_id
2       b        1
3       b        1
4       b        3

这篇关于Pandas Groupy只接受前N个群组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 16:26