我有一个数据框my_df
:
id color
--------------------
001 red
001 blue
001 yellow
002 green
002 black
003 yellow
003 white
003 blue
然后我做了:
grouped_df = my_df.groupby('id')
a = grouped_df['id'].apply(lambda x: set(x.tolist()))
然后看起来像这样:
id
--------------------------------
001 {red,blue,yellow}
002 {green,black}
003 {yellow,white,blue}
如何遍历
a
,以便可以找到每个ID的对应集合?谢谢! 最佳答案
尝试将set
与groupby
一起应用
my_df.groupby('id').color.apply(set)
id
1 {blue, red, yellow}
2 {black, green}
3 {white, yellow, blue}
Name: color, dtype: object
说明
您所做的事情与我所做的事情之间的主要区别在于,我先使用
.color
细化了分组,然后应用了set
。这确保了我在系列而不是数据帧上应用set
。如果将
groupby
的结果分配给变量,请说g
g = my_df.groupby('id').color.apply(set)
然后可以通过索引值轻松地引用每个组
g.loc[1]
{'blue', 'red', 'yellow'}
你可以像这样循环
for i, v in g.iteritems():
print(i, v)
1 {'blue', 'red', 'yellow'}
2 {'black', 'green'}
3 {'white', 'yellow', 'blue'}
关于python - 如何在 Pandas 分组数据框中检索汇总值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40877788/