別のデータフレームの文字列一致からの平均値の列をパンダデータフレームに追加します

ショーン・ケルソ

現在、Excelのインポートから作成された2つのデータフレーム(AとBと呼びましょう)があります。両方とも異なる寸法といくつかの空/ NaNセルを持っています。Aが個々のモデル番号のデータであり、Bが注文情報のセットであるとします。Aのすべての行(一意のアイテム)について、そのアイテム番号の(場合によっては)複数の注文をBで検索し、対応する価格を平均して、各アイテムの平均価格を含む列をAに追加します。

アイテム番号は英数字であるため、文字列である必要があります。すべてのアイテムに注文/価格情報があるわけではないので、次のステップでそれらを削除します。これは大量のデータであるため、効率が理想的であるため、反復はおそらく正しい選択ではありません。前もって感謝します!

これが私がこれまでに持っているものです:

avgPrice = []
for index, row in dfA.iterrows():
    def avg_unit_price(item_no, unit_price):
        matchingOrders = []
        for item, price in zip(item_no, unit_price):
            if item == row['itemNumber']:
                matchingOrders.append(price)
        avgPrice.append(np.mean(matchingOrders))  
    avg_unit_price(dfB['item_no'], dfB['unit_price'])
dfA['avgPrice'] = avgPrice
jpp

一般に、ループはパフォーマンスが低いため、回避してください。簡単にベクトル化できない場合は、最後の手段としてpd.Series.applyを試すことができます。この場合、どちらも必要ありませんでした。

import pandas as pd

# B: pricing data
df_b = pd.DataFrame([['I1', 34.1], ['I2', 541.31], ['I3', 451.3], ['I2', 644.3], ['I3', 453.2]],
                    columns=['item_no', 'unit_price'])

# create avg price dictionary
item_avg_price = df_b.groupby('item_no', as_index=False).mean().set_index('item_no')['unit_price'].to_dict()

# A: product data
df_a = pd.DataFrame([['I1'], ['I2'], ['I3'], ['I4']], columns=['item_no'])

# map price info to product data
df_a['avgPrice'] = df_a['item_no'].map(item_avg_price)

# remove unmapped items
df_a = df_a[pd.notnull(df_a['avgPrice'])]

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パンダ、列が一致したときに別のデータフレームからデータフレームを減算します

分類Dev

別の列エントリが2つのデータフレーム間で一致する場合は、別のデータフレームの行エントリからパンダ列にデータを入力します

分類Dev

部分的な文字列の一致に基づいて、別のデータフレームから1つのデータフレーム列を埋めます

分類Dev

R-別のデータフレームの一致する値を使用して、データフレームに新しい列を追加します

分類Dev

一致する文字列が特定の値を超える場合は、パンダのデータフレームから行を削除します

分類Dev

パンダのデータフレームの別の列の値に基づいて列を追加します

分類Dev

あるデータフレームから列名を取得し、パンダの別のデータフレームに空の列として追加します

分類Dev

パターンに一致する列をgrepして、それらの列の行平均を計算し、平均値を新しい列としてrのデータフレームに追加するにはどうすればよいですか?

分類Dev

両方の共通の列の値を一致させながら、パンダのデータフレームから別のデータフレームに列をコピーするにはどうすればよいですか?

分類Dev

パンダの異なるデータフレーム内の別の一致する列からデータフレーム内の列値を更新します

分類Dev

行、列の値が別の列の任意の場所と一致する場合は、パンダデータフレームの行を削除します

分類Dev

2番目のデータフレームの一致する列に基づいてパンダのデータフレームを更新します

分類Dev

パンダ:特定の列の文字列値に基づいて、データフレームを個別のデータフレームに分割します

分類Dev

2つのデータフレームから2つの列に一致するパンダデータフレームを入力する

分類Dev

パンダは1つの列の値を別のデータフレームの列と比較し、一致する行を見つけます

分類Dev

パンダのデータフレームは、別のデータフレームの値と一致することで値を分割します

分類Dev

別のデータフレームパンダからの一致する値に基づく新しい列

分類Dev

パンダの別のデータフレームからの同様の値に基づいて、データフレームの列に入力します

分類Dev

別のdfからのRデータフレームの各行の番号を一致させ、一致した番号の前に文字を追加します

分類Dev

別のデータフレームのIDと一致する場合は、n個のデータフレームから値を追加します

分類Dev

別のデータフレームからの一致する値のリストを使用してデータフレーム列を作成する

分類Dev

あるデータフレーム値が別のデータフレーム列と一致するかどうかを確認してから、データフレーム列に値を設定します

分類Dev

パンダは、列の値をマージしない別のデータフレームにデータフレームを追加します

分類Dev

パンダ:別のデータフレームの値に基づいて、データフレームに新しい列を追加します

分類Dev

列内の個別の値のパンダデータフレームからリストを作成します

分類Dev

両方の最初の2つの列が一致する場合、データフレームの1つの列から別のデータフレームの新しい列に値を追加する

分類Dev

パンダのデータフレームに文字列値を追加する

分類Dev

リストからデータフレーム列で部分的な文字列の一致を検索します-パンダ-Python

分類Dev

series / dictの一致する列からpandasデータフレームの行の値を更新します

Related 関連記事

  1. 1

    パンダ、列が一致したときに別のデータフレームからデータフレームを減算します

  2. 2

    別の列エントリが2つのデータフレーム間で一致する場合は、別のデータフレームの行エントリからパンダ列にデータを入力します

  3. 3

    部分的な文字列の一致に基づいて、別のデータフレームから1つのデータフレーム列を埋めます

  4. 4

    R-別のデータフレームの一致する値を使用して、データフレームに新しい列を追加します

  5. 5

    一致する文字列が特定の値を超える場合は、パンダのデータフレームから行を削除します

  6. 6

    パンダのデータフレームの別の列の値に基づいて列を追加します

  7. 7

    あるデータフレームから列名を取得し、パンダの別のデータフレームに空の列として追加します

  8. 8

    パターンに一致する列をgrepして、それらの列の行平均を計算し、平均値を新しい列としてrのデータフレームに追加するにはどうすればよいですか?

  9. 9

    両方の共通の列の値を一致させながら、パンダのデータフレームから別のデータフレームに列をコピーするにはどうすればよいですか?

  10. 10

    パンダの異なるデータフレーム内の別の一致する列からデータフレーム内の列値を更新します

  11. 11

    行、列の値が別の列の任意の場所と一致する場合は、パンダデータフレームの行を削除します

  12. 12

    2番目のデータフレームの一致する列に基づいてパンダのデータフレームを更新します

  13. 13

    パンダ:特定の列の文字列値に基づいて、データフレームを個別のデータフレームに分割します

  14. 14

    2つのデータフレームから2つの列に一致するパンダデータフレームを入力する

  15. 15

    パンダは1つの列の値を別のデータフレームの列と比較し、一致する行を見つけます

  16. 16

    パンダのデータフレームは、別のデータフレームの値と一致することで値を分割します

  17. 17

    別のデータフレームパンダからの一致する値に基づく新しい列

  18. 18

    パンダの別のデータフレームからの同様の値に基づいて、データフレームの列に入力します

  19. 19

    別のdfからのRデータフレームの各行の番号を一致させ、一致した番号の前に文字を追加します

  20. 20

    別のデータフレームのIDと一致する場合は、n個のデータフレームから値を追加します

  21. 21

    別のデータフレームからの一致する値のリストを使用してデータフレーム列を作成する

  22. 22

    あるデータフレーム値が別のデータフレーム列と一致するかどうかを確認してから、データフレーム列に値を設定します

  23. 23

    パンダは、列の値をマージしない別のデータフレームにデータフレームを追加します

  24. 24

    パンダ:別のデータフレームの値に基づいて、データフレームに新しい列を追加します

  25. 25

    列内の個別の値のパンダデータフレームからリストを作成します

  26. 26

    両方の最初の2つの列が一致する場合、データフレームの1つの列から別のデータフレームの新しい列に値を追加する

  27. 27

    パンダのデータフレームに文字列値を追加する

  28. 28

    リストからデータフレーム列で部分的な文字列の一致を検索します-パンダ-Python

  29. 29

    series / dictの一致する列からpandasデータフレームの行の値を更新します

ホットタグ

アーカイブ