既存の値を下限と上限と比較して新しいパンダシリーズを作成する方法

lmonty

サプライヤーのコスト変更に基づいて小売価格を更新するスクリプトを作成しています。

外部のサプライヤーデータを取り込み、内部データと照合し、変更を出力し、これらをAPIに渡してERPを更新し、変更を視覚化できるようにするスクリプトを正常に作成しました。私の最後の仕事は小売価格の変更を解決することですが、この問題にパンダを使用する最良の方法を見つけることができません。

df1(priceChange):

      Cat Nr    Net Cost    Status
 2801   0825646183913   8.50    ACTIVE
 2802   0603497902941   7.96    ACTIVE
 2803   0603497897452   9.35    ACTIVE
 2804   4050538324761   14.45   ACTIVE
 2805   4050538307429   10.20   ACTIVE

df2(priceGrid):

    Cost (low)  Cost (upp)  Retail
0   2.00    3.30    5.99
1   3.31    5.00    8.99
2   5.01    6.15    10.99
3   6.16    7.15    12.99
4   7.16    8.15    14.99
5   8.16    9.25    16.99
6   9.26    10.75   18.99
7   10.76   11.50   20.99
8   11.51   12.75   22.99
9   12.76   13.75   24.99
10  13.76   14.75   26.99

したがって、df1 ['NetCost']をdf2 ['Cost(low)']&df2 ['Cost(upp)']と比較し、df2 ['Retail']を返すことにより、df1 ['Retail']を作成します。

たとえば、行2801'Net Cost '== 8.50であるため、16.99の' Retail 'が返されます。

df1は次のようになります。

      Cat Nr    Net Cost    Status    Retail
 2801   0825646183913   8.50    ACTIVE    16.99
 2802   0603497902941   7.96    ACTIVE    14.99
 2803   0603497897452   9.35    ACTIVE    18.99
 2804   4050538324761   14.45   ACTIVE    26.99
 2805   4050538307429   10.20   ACTIVE    18.99
クリスA

pandas.merge_asofこれに使用できます

ただし、この方法の要件は、左側のフレームのキーを並べ替える必要があることです。したがって使用する必要があり.reset_index.sort_values次いで、及び.set_index.sort_index以下の例で:

df_merged = (pd.merge_asof(df1.reset_index().sort_values('Net Cost'),
                           df2[['Cost (low)', 'Retail']],
                           left_on='Net Cost',
                           right_on='Cost (low)')
             .set_index('index')
             .sort_index()
             .drop('Cost (low)', axis=1))

print(df_merged)

              Cat Nr  Net Cost  Status  Retail
index                                         
2801    825646183913      8.50  ACTIVE   16.99
2802    603497902941      7.96  ACTIVE   14.99
2803    603497897452      9.35  ACTIVE   18.99
2804   4050538324761     14.45  ACTIVE   26.99
2805   4050538307429     10.20  ACTIVE   18.99

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

if-elseを使用して新しい列を作成するときのパンダエラー:シリーズの真理値があいまいです

既存の列に基づいて新しい列をパンダシリーズに追加する方法

新しいリストを作成し、パンダシリーズの値に基づいて入力します

既存のダミー変数を使用して、グループ内の特定のリード観測の値1をとる新しい変数を作成する方法

上限と下限に基づいてパンダのデータフレームに値を割り当てる

パンダのデータフレーム列をセットと比較して新しいリストを作成する方法

Rでfacet_wrapを使用して、上限と下限をシェーディングしてggplotする方法は?

パーティションSparkJDBCの下限と上限を計算します

2つのシリーズを比較して論理的なパンダシリーズを作成する

パンダシリーズの要素を抽出し、データフレームの列の行と比較する方法

上限と下限のベクトルを使用して新しい変数を作成します

シリーズの各値をパンダの別のシリーズの他のすべての値と比較します

リストとして与えられた複数のパンダシリーズの要素を比較する

パンダシリーズ:すべての値とすべての値を比較する

「上限」と「下限」の値を使用して、一貫性のある個別のカラーマップ/カラーバーを作成する方法

特定のキーと値のペアに基づいて、2つのパンダシリーズをどのように比較しますか?

パンダ:データフレームに新しい列を作成し、他の既存の列を考慮して値を追加する方法

ifと既存の列に基づいてパンダに新しい列を作成する

パンダ:.locを使用して新しいデータフレームを作成するときに変数の値を使用する方法

ネストされたリストを新しい列として既存のパンダデータフレームに追加する方法

パンダシリーズの操作を別の関数のパラメーターとして追加する方法

辞書をマッパーとして使用してパンダシリーズを作成する

パンダを使用して、既存のExcelファイルに新しいシートを保存する方法

Python Pandas:セルと2つの列の値を比較し、If...Elseステートメントを使用して新しい値で別の列を作成する方法

Python:2つのリストをペアで比較し、メンバーシップと値に基づいて新しいリストを作成します

上限と下限のセットを使用して信頼区間比較プロットを作成します

パンダシリーズを使用して新しい列を追加する

新しい変数を割り当てるデータテーブルの上限と下限

パンダ:既存のデータフレームの列の名前とデータに基づいて新しいデータフレームを作成する

TOP 一覧

  1. 1

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  2. 2

    ソートされた検索、ターゲット値未満の数をカウント

  3. 3

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    Ansibleで複数行のシェルスクリプトを実行する方法

  6. 6

    Reactでclsxを使用する方法

  7. 7

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  8. 8

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  9. 9

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  10. 10

    PowerShellの分割ファイルへのヘッダーの追加

  11. 11

    Chromeウェブアプリのウェブビューの高さの問題

  12. 12

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  13. 13

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  14. 14

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  15. 15

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  16. 16

    MLでのデータ前処理の背後にある直感

  17. 17

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  20. 20

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  21. 21

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

ホットタグ

アーカイブ