1つの列を持つデータフレームがあり、3つの一意の値があるとしましょう
import pandas as pd
df = pd.DataFrame(['a', 'b', 'c'], columns = ['string'])
df
各データフレームに2つの一意の値が含まれるように、このデータフレームをより小さなデータフレームに分割したいと考えています。上記の場合、3 つのデータ フレーム 3c2(nCr) = 3.df1 - [ab] df2 - [ac] df3 - [bc] が必要です。以下のリンクをクリックして、現在の実装を確認してください。
現在のコードと出力を表示するには、ここをクリックしてください
import itertools
for i in itertools.combinations(df.string.values, 2):
print(df[df.string.isin(i)], '\n')
パンダの groupby のようなものを探しています。ループ内のデータのサブセット化には時間がかかるためです。サンプル ケースの 1 つでは、609 個の一意の値があり、ループを完了するのに約 3 分かかりました。したがって、実際のシナリオでは一意の値が最大 1000 になる可能性があるため、同じ操作を実行するための最適化された方法を探しています。