【发布时间】:2015-07-06 19:15:40
【问题描述】:
我的初始 DataFrame 如下所示:
A B quantity
0 1 foo 1
1 1 baz 2
2 1 bar 2
3 1 faz 1
4 2 foo 2
5 2 bar 1
6 3 foo 3
我需要将它按“A”分组并列出“B”乘以“数量”:
A B
0 1 [foo, baz, baz, bar, bar, faz]
1 2 [foo, foo, bar]
2 3 [foo, foo, foo]
目前我正在使用 groupby() 然后 apply():
def itemsToList(tdf, column):
collist = []
for row in tdf[column].iteritems():
collist = collist + tdf['quantity'][row[0]]*[row[1]]
return pd.Series({column: collist})
gb = df.groupby('A').apply(itemsToList, 'B')
我怀疑这是一种有效的方法,所以我正在寻找一种好的“pandaic”方法来实现这一目标。
【问题讨论】:
-
+1 回答一个有趣的问题。看看this。我认为它是相似的。