私はパンダの中で、これをすべて後方に向かっていると思う。私は範囲の間に入るグループ内の数量の数量や組み合わせを特定し、新しい列にフラグを入れて(そして可能であればする組み合わせを保存しようとしているエンドでPython 3 - 辞書と集約内のリストの組み合わせを作成する
Group rstart rend qty
1 10000 11000 1000
1 10000 11000 8000
1 10000 11000 13000
1 10000 11000 1000
2 6000 8000 4000
2 6000 8000 9000
2 6000 8000 3000
:ここでは例のデータフレームです新しい列にも)。
ここまで私がこれまでやってきたことは、私が問題に取り組んでいるところです。私はこの言語を初めて使い慣れて以来、さまざまな方法で試しています。
import pandas as pd
import numpy as np
import itertools
df = pd.read_csv('test.csv')
d = df[['group','qty']]
s = d.groupby('group')['qty'].apply(list).to_dict()
comb = list(map(dict,itertools.combinations(s.items(),2)))
私が試した櫛のstmtと複数のバリエーションは、単に辞書を印刷しています。 2つのバリエーションを2つ試してテストしますが、動作しません。これはリストの値の数に基づいて調整する必要があります。
私はデータセットを持ち込み、すべての組み合わせを別のテーブルに作成するために、各グループとqtyのリストを持つ辞書を作成することが最善であると考えていました。各値の組み合わせと合計を取得すると、合計とフラグと比較するメインデータフレームにリンクし直します。
私は、グループに関連付けられた数量と集計のそれぞれの組み合わせを作成する際に問題が発生しています。すべての辞書のリストに保存されていれば実行できますが、グループごとにグループ化する必要があります。たとえば、グループ1には1000,8000と1000,13000と1000,1000と1000,8000,13000などが必要です。組み合わせの量は、グループによって異なります。
誰かが正しい方向に私を導くのを助けることができますか?多分私の思考は、これについてどうやって行くのかというだけではありません。
はここであなたに
私はあなたの要件を理解していません。たとえば、1000,13000、および1000が10000〜11000の範囲内にあるのはなぜですか。 –
彼らは一人で見たときではありません - 私はそのグループ内の数量または数量の組み合わせがその範囲内にあるかどうかを調べようとしています。そのグループでは、1000,8000と1000はその範囲内で合計されるため、識別する必要があります。 – Court