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

オリア・グルーバー

df_ratings約100万行3列のパンダデータフレームがあります。

このデータフレーム内のデータを取得し、それに変換を適用して、という名前のnumpy行列内に配置したいと思います。 ratings_matrix

これを実現するために、次のコードを作成しました。

for i in range(df_ratings.shape[0]): #fill matrix with ratings. zero = unrated
    current_user = df_ratings.iloc[i, 0] - 1
    current_movie = rated_movies_dictionary[df_ratings.iloc[i, 1]]
    current_rating = df_ratings.iloc[i, 2]

    ratings_matrix[current_movie, current_user] = current_rating

それは動作しますが、非常に遅いです。forループ内のデータフレームのすべての行を反復処理するのは時間がかかります。これを行うためのより速い方法はありますか?

piRSquared
cuser = df_ratings.iloc[:, 0].values - 1
cmvie = df_ratings.iloc[:, 1].map(rated_movies_dictionary).values
crate = df_ratings.iloc[:, 2].values
ratings_matrix[cmvie, cuser] = crate

コメントへの回答

.valuesは何かを追加しますか?–マールテンファブレ

はい!多くのことを行うときは、多くの場合、numpy配列を使用する方がパフォーマンスが高くなります。最終的な目標はスライスの割り当てを行うことなので、すべてをnumpy配列に入れたかったのです。簡単なデモンストレーションとして、timeitパンダシリーズとそのシリーズのnumpy配列をスライスしながら実行ました

%timeit np.arange(4)[pd.Series([1, 2, 3])]
%timeit np.arange(4)[pd.Series([1, 2, 3]).values]

111 µs ± 2.25 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
61.1 µs ± 2.7 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

行を反復処理するよりも、行とメタデータからパンダデータフレーム列にデータを入力するためのより良い(おそらくSQLっぽい)方法をお願いします

分類Dev

キーを使用してパンダのデータフレームを再グループ化します。行を反復処理するよりも高速な方法ですか?

分類Dev

データフレームを反復処理するためのパンダックなアプローチ

分類Dev

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

分類Dev

データフレームの列を反復処理します(パンダ)

分類Dev

値を更新しながらパンダのデータフレームを反復処理します

分類Dev

データフレームを反復処理するためのより効率的な方法はありますか?

分類Dev

PythonPandasデータフレームで値の複数のバージョンを処理するためのよりスマートな方法を探しています

分類Dev

前の行を参照しながらパンダのデータフレームを反復処理するにはどうすればよいですか?

分類Dev

パンダのデータフレームの連続する列を反復処理します

分類Dev

パンダ:2つの異なるデータフレームを反復処理する方法

分類Dev

行を反復処理するためのより高速な方法

分類Dev

パンダデータフレームのすべての列を反復処理して、区切り文字で分割します

分類Dev

インデックスを使用してパンダのマルチインデックスデータフレームを反復処理する方法

分類Dev

パンダのデータフレームを反復処理し、条件を適用します

分類Dev

データフレーム列のdictから新しい列を作成するためのより効率的な方法を探しています

分類Dev

Pythonパンダ:複数のデータフレームを反復処理します

分類Dev

三列に一致する条件でパンダのデータフレームで選択した行を反復処理する方法?

分類Dev

複数の条件を使用してデータフレームを反復処理する正しい方法

分類Dev

リストを反復処理しながら一意のパンダデータフレームを作成する方法

分類Dev

パンダでは、同じIDに基づいて2つのデータフレームを反復処理する方法

分類Dev

別のデータフレームに基づいて値を取得するためにデータフレームを反復処理する

分類Dev

既存のデータフレームに新しい行を追加するためのより高速な方法

分類Dev

パンダのデータフレームを大きなcsvに処理するより速い方法はありますか?

分類Dev

新しいパンダ比較データフレームを作成するためのより良い方法

分類Dev

パンダのデータフレームを反復処理して値を更新します-AttributeError:属性を設定できません

分類Dev

メインフレームデータを処理するためのパターンはありますか?

分類Dev

列を反復処理するパンダデータフレームのPythonコード

分類Dev

列を反復処理してパンダのデータフレームをシリーズに変換します

Related 関連記事

  1. 1

    行を反復処理するよりも、行とメタデータからパンダデータフレーム列にデータを入力するためのより良い(おそらくSQLっぽい)方法をお願いします

  2. 2

    キーを使用してパンダのデータフレームを再グループ化します。行を反復処理するよりも高速な方法ですか?

  3. 3

    データフレームを反復処理するためのパンダックなアプローチ

  4. 4

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

  5. 5

    データフレームの列を反復処理します(パンダ)

  6. 6

    値を更新しながらパンダのデータフレームを反復処理します

  7. 7

    データフレームを反復処理するためのより効率的な方法はありますか?

  8. 8

    PythonPandasデータフレームで値の複数のバージョンを処理するためのよりスマートな方法を探しています

  9. 9

    前の行を参照しながらパンダのデータフレームを反復処理するにはどうすればよいですか?

  10. 10

    パンダのデータフレームの連続する列を反復処理します

  11. 11

    パンダ:2つの異なるデータフレームを反復処理する方法

  12. 12

    行を反復処理するためのより高速な方法

  13. 13

    パンダデータフレームのすべての列を反復処理して、区切り文字で分割します

  14. 14

    インデックスを使用してパンダのマルチインデックスデータフレームを反復処理する方法

  15. 15

    パンダのデータフレームを反復処理し、条件を適用します

  16. 16

    データフレーム列のdictから新しい列を作成するためのより効率的な方法を探しています

  17. 17

    Pythonパンダ:複数のデータフレームを反復処理します

  18. 18

    三列に一致する条件でパンダのデータフレームで選択した行を反復処理する方法?

  19. 19

    複数の条件を使用してデータフレームを反復処理する正しい方法

  20. 20

    リストを反復処理しながら一意のパンダデータフレームを作成する方法

  21. 21

    パンダでは、同じIDに基づいて2つのデータフレームを反復処理する方法

  22. 22

    別のデータフレームに基づいて値を取得するためにデータフレームを反復処理する

  23. 23

    既存のデータフレームに新しい行を追加するためのより高速な方法

  24. 24

    パンダのデータフレームを大きなcsvに処理するより速い方法はありますか?

  25. 25

    新しいパンダ比較データフレームを作成するためのより良い方法

  26. 26

    パンダのデータフレームを反復処理して値を更新します-AttributeError:属性を設定できません

  27. 27

    メインフレームデータを処理するためのパターンはありますか?

  28. 28

    列を反復処理するパンダデータフレームのPythonコード

  29. 29

    列を反復処理してパンダのデータフレームをシリーズに変換します

ホットタグ

アーカイブ