パンダのデータフレーム検索を高速化する方法を探しています

チャド

そのため、データフレームでリリース日(リリース日は製品を見つけることができる最も早い日付)を検索し、データフレームの現在の日付からそれを引くことによって、特定の製品の年齢を計算しようとしています。ただし、リリース日の検索には非常に時間がかかります(このスレッドを作成するまでに2時間かかります)。注:データフレームには30万を超える行があります。

私はパンダで.locメソッドを使用していますが、これが問題の原因のようです。

#Age Calculation
def item_age(release,current):
    age = (current - release) / timedelta(days=365.2425)
    age="%.3f" % age
    return age
#Get the release date of a given item 
def getItem_releaseDate(sales_data,index):
    date=sales.loc[(sales.item_id==index),'date']
    release=[]
    for i in date:
        release.append(datetime.datetime.strptime(i,'%d.%m.%Y'))
    mini=min(release)
    return mini
#Appending age to item
def getItem_age(sales_data):
    sales=sales_data
    sales['age']=0
    for index,row in sales.iterrows():
        current=datetime.datetime.strptime(row['date'],'%d.%m.%Y')
        release=getItem_releaseDate(sales_data,row["item_id"])
        row["age"]=item_age(release,current)
    return sales

グスト

次のことを試してください(テストするデータがないため、機能しているかどうかはわかりません)

#Appending age to item
def getItem_age(sales_data):
    sales_data['age']=item_age(sales_data.date.values, getItem_releaseDate(sales_data,sales_data.item_id.values))
    return sales_data

#Age Calculation
def item_age(release,current):
    age = (current - release) / timedelta(days=365.2425)
    age="%.3f" % age
    return age

#Get the release date of a given item 
def getItem_releaseDate(sales_data,index):
    return sales_data.loc[sales_data.item_id == index].date.min()

コードの問題は、データセットを非効率的にループしていることです。通常、これは「Vectorization with NumPy」を使用して取り除くことができます。詳細については、パンダの最適化を確認してください。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パンダのデータフレームでの検索を高速化

分類Dev

パンダのデータフレームを反復処理するためのより高速な方法を探しています

分類Dev

別のデータフレームを参照するパンダのローリングを高速化する

分類Dev

コードを高速化-CSVを選択した列のパンダデータフレームにロードしてマージします

分類Dev

データフレーム検索を高速化し、値を割り当てる方法は?

分類Dev

「ユニークな」データフレーム検索を高速化する方法

分類Dev

コードを高速化する方法-データフレームの検索には数時間かかります

分類Dev

.txtファイルを使用して形成されたPythonデータフレームでの検索/フィルタリングを高速化するにはどうすればよいですか?

分類Dev

大きなパンダのデータフレームで最も近い上限値と下限値の検索を高速化

分類Dev

パンダのデータフレーム列のリスト内を検索しています、エラー

分類Dev

パンダのデータフレーム列のリスト内を検索しています、エラー

分類Dev

パンダのデータフレームを行ごとに検索して変数を抽出する方法

分類Dev

コードを高速化する簡単な方法を探しています

分類Dev

Python 3を使用して、現在の方法を使用してデータフレームの更新を高速化するにはどうすればよいですか?

分類Dev

条件に基づいてパンダデータフレームの列の数を検索します

分類Dev

パンダを使用してデータフレームをサブセット化するより高速な方法

分類Dev

パンダ-データフレームインデックスを使用して値を検索する方法

分類Dev

巨大なパンダデータフレームで行をスライスする最速の方法を探しています

分類Dev

ループを高速化して、複数のデータフレームから値を割り当てます

分類Dev

パンダのデータフレームは、異なるデータフレームの値を検索し、値を割り当てます

分類Dev

パンダのデータフレームを高速で検索し、条件に基づいてデータフレームの別の列に値を挿入します

分類Dev

パターン検索をどのように高速化できますか?

分類Dev

パンダを使用してデータフレームの列の上位3つを検索します

分類Dev

検索に近いジオコーダーを高速化するためのインデックスを追加

分類Dev

geopyを使用して、パンダデータフレームの座標から国名を検索します

分類Dev

パンダの時間インデックス付きデータフレームの将来の値をローリングするためにループします。これを高速化できますか?

分類Dev

「移動する」球内の複数の配列間でデータを検索するコードのランタイムを高速化する方法

分類Dev

多くのデータフレームから対応する値を検索して返すパンダ

分類Dev

パンダのデータフレームで2番目に新しい日付を検索します

Related 関連記事

  1. 1

    パンダのデータフレームでの検索を高速化

  2. 2

    パンダのデータフレームを反復処理するためのより高速な方法を探しています

  3. 3

    別のデータフレームを参照するパンダのローリングを高速化する

  4. 4

    コードを高速化-CSVを選択した列のパンダデータフレームにロードしてマージします

  5. 5

    データフレーム検索を高速化し、値を割り当てる方法は?

  6. 6

    「ユニークな」データフレーム検索を高速化する方法

  7. 7

    コードを高速化する方法-データフレームの検索には数時間かかります

  8. 8

    .txtファイルを使用して形成されたPythonデータフレームでの検索/フィルタリングを高速化するにはどうすればよいですか?

  9. 9

    大きなパンダのデータフレームで最も近い上限値と下限値の検索を高速化

  10. 10

    パンダのデータフレーム列のリスト内を検索しています、エラー

  11. 11

    パンダのデータフレーム列のリスト内を検索しています、エラー

  12. 12

    パンダのデータフレームを行ごとに検索して変数を抽出する方法

  13. 13

    コードを高速化する簡単な方法を探しています

  14. 14

    Python 3を使用して、現在の方法を使用してデータフレームの更新を高速化するにはどうすればよいですか?

  15. 15

    条件に基づいてパンダデータフレームの列の数を検索します

  16. 16

    パンダを使用してデータフレームをサブセット化するより高速な方法

  17. 17

    パンダ-データフレームインデックスを使用して値を検索する方法

  18. 18

    巨大なパンダデータフレームで行をスライスする最速の方法を探しています

  19. 19

    ループを高速化して、複数のデータフレームから値を割り当てます

  20. 20

    パンダのデータフレームは、異なるデータフレームの値を検索し、値を割り当てます

  21. 21

    パンダのデータフレームを高速で検索し、条件に基づいてデータフレームの別の列に値を挿入します

  22. 22

    パターン検索をどのように高速化できますか?

  23. 23

    パンダを使用してデータフレームの列の上位3つを検索します

  24. 24

    検索に近いジオコーダーを高速化するためのインデックスを追加

  25. 25

    geopyを使用して、パンダデータフレームの座標から国名を検索します

  26. 26

    パンダの時間インデックス付きデータフレームの将来の値をローリングするためにループします。これを高速化できますか?

  27. 27

    「移動する」球内の複数の配列間でデータを検索するコードのランタイムを高速化する方法

  28. 28

    多くのデータフレームから対応する値を検索して返すパンダ

  29. 29

    パンダのデータフレームで2番目に新しい日付を検索します

ホットタグ

アーカイブ