2017-09-15 4 views
0

私は多くの人が遭遇したと感じるデータ問題にぶつかってきました。私は現在、取引情報を含むデータセットを持っています。 Transaction_Numberに基づいて、トランザクションに関わる各人がどれくらい時間を費やしているかを知ります。1対多の行レベルをマージする

最終出力はこの

Transaction_Number  Created On    Created_By  Time_Diff 

    27327920232   2014-12-08 03:29:08  jake   NaN 
    27323232336   2017-04-28 18:39:03  James   0 
    27323232336   2017-04-28 18:26:23  Tony   760.0 

のように見える今、私が直面しています問題は、私は1つの列が欠落していますということです。 DBからクエリを実行して解決し、Product_Numberという名前のフィールドを取得しました。私はTransaction_Numberの2つのテーブルを結合しています。ここで、問題が発生するのは、2番目のデータフレーム名Dは、Product_Numberに一致するTransaction_Numberが1回だけリストされていることです。マスタデータフレームにはトランザクションが複数発生しています。したがって、私は次のコードを実行すると私の結果は意味をなさない。 12K +の可能性に基づいて4つのマッチだけを出力します。

  X      D      D 
    Transaction_Number  Transaction_Number   Product_Number 
    27327920232   27327920232    Cw-xs-re-89 
    27327920232   72732332323    pw-ts-sf-89 
    27327920232   32338033383    Cw-ns-tn-86 

    results = pd.merge(X, D, how='inner', on= "Transaction_Number") 

適切なマッチングを見つけるには、どうすればよいですか。私はまた、左の結合を試みました、ヒントの任意のタイプが役立ちます。 - ありがとう

+0

あなたはこの同じ質問をしませんでしたか?最初の取引番号の前にダッシュが表示されるのはなぜですか? –

+0

*正しいマッチを検索するにはどうすればよいですか*?あなただけが、 'merge'が必要に応じて動作しているので、これを私たちに伝えることができます。どの* Product_Number *を複数の* Transactions *から取り込むか?最初?最終? – Parfait

答えて

0

外側のマージをお探しですか?

results = pd.merge(X, D, how='outer', on= "Transaction_Number") 
関連する問題