[解決済み] PandasのDataFrame apply()で全コアを使用するようにするか?
2022-04-28 05:06:49
質問
2017年8月現在、パンダ
DataFame.apply()
を実行すると、マルチコアマシンはその計算時間の大部分を浪費してしまうことになります。
df.apply(myfunc, axis=1)
.
すべてのコアを使用して、データフレームに並行してapplyを実行するにはどうすればよいですか?
どのように解決するのですか?
を使用することができます。
swifter
パッケージを使用します。
pip install swifter
(インストールされている依存関係とのバージョンの衝突を避けるために、virtualenvで使用したい場合があることに注意してください)。
Swifterはpandasのプラグインとして動作します。
apply
関数を使用します。
import swifter
def some_function(data):
return data * 10
data['out'] = data['in'].swifter.apply(some_function)
この関数は、(上記の例のように)ベクトル化されているかどうかに関係なく、最も効率的な並列化方法を自動的に判断します。
その他の例 と 性能比較 をGitHubで公開しています。なお、本パッケージは現在活発に開発中であり、APIが変更される可能性があります。
また、この
は自動的に動作しません
を文字列カラムのために使用します。文字列を使用する場合、Swifterは "単純な "Pandasの
apply
これは並列化されません。この場合,強制的に
dask
はパフォーマンスの向上をもたらさないので、データセットを手動で分割して
を使用して並列化します。
multiprocessing
.
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] 一行ずつ追加してPandas Dataframeを作成する
-
[解決済み] Pandasのデータフレームから行を選択するために値のリストを使用する
-
[解決済み] 辞書のリストをpandasのDataFrameに変換する
-
[解決済み] Pandasシリーズ/DataFrame全体をプリティプリントする
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ピアソン相関計算中に「ValueError: Connectenation axis のすべての入力配列寸法は正確に一致しなければなりません」を取り除くには?
-
[解決済み] ImportError: IProgress が見つかりませんでした。インストールされていますが、jupyterとipywidgetsをアップデートしてください。
-
[解決済み] モジュール 'pandas' には属性 'Panel' がありません。
-
pandas DataFrame を日付比較に変換するとき、datetimelike 値の .dt アクセッサしか使用できないエラーが発生しました。
-
pandasがDataframeやSeriesを扱うとき、カラム名なしでデータのカラムを受け取る。
-
pandasを使ってexcelのvlookup関数を実装する
-
pandas to_csv to save data with Chinese messy codeの問題と解決法
-
[解決済み] PandasのDataFrame apply()で全コアを使用するようにするか?
-
[解決済み] Alpine LinuxでPandasのインストールに時間がかかる理由
-
[解決済み] pandasのデータフレームでNoneをNaNに置き換える