0
内のリンクを収集し、私はタイプは、効率的にデータフレーム
個人が場所と食品間のリンクを作成しているindividual, location, food
1 A a
1 A b
1 B a
1 A c
2 C a
2 C b
のデータフレームを持っていると言います。私は個人的にすべてのリンクを収集したいと思います。それは個人が場所A
とB
で観察し、(最終的に)a
で食品、b
、およびc
を持っていた場合、私はお互いに対してすべてこれらの場所や食品の種類をリンクしたい、次のとおりです。
location food
A a
A b
A c
B a
B b
B c
C a
C b
1つ - 非常に非効率的です - その方法は
import itertools
def foo(group):
list1 = group.location.unique()
list2 = group.food.unique()
return pd.DataFrame(data=list(itertools.product(list1, list2)), columns=['location', 'food'])
df.groupby(df.individual).apply(foo)
これを行うには良い方法はありますか?