[解決済み] Pandasのmap、applymap、applyメソッドの違い
質問
これらのベクトル化手法は、どのような場合に使用するのか、基本的な例を挙げて教えてください。
なるほど
map
は
Series
メソッドであるのに対し、残りのメソッドは
DataFrame
メソッドを使用します。私は混乱しました
apply
と
applymap
というメソッドがありますが。なぜDataFrameに関数を適用するメソッドが2つあるのでしょうか?また、使い方を説明する簡単な例もあれば最高です。
どのように解決するのですか?
比較
map
,
applymap
そして
apply
: コンテキストの重要性
最初の大きな違い 定義
-
map
はシリーズのみで定義されます -
applymap
は DataFrames のみで定義されています。 -
apply
は両方に定義されています。
2つ目の大きな違い。 入力論証
-
map
アクセプトdict
s,Series
またはcallable -
applymap
とapply
callable のみ受け付けます。
3つ目の大きな違い ビヘイビア
-
map
は直列の要素です。 -
applymap
はDataFramesの要素です。 -
apply
も要素ごとに動作しますが、より複雑な操作や集計に適しています。動作や戻り値は関数に依存する。
4つ目の大きな違い(最も重要な違い)。 使用例
-
map
は、あるドメインから別のドメインに値をマッピングするためのものなので、パフォーマンスに最適化されています (例,df['A'].map({1:'a', 2:'b', 3:'c'})
) -
applymap
は、複数の行/列にわたる要素単位の変換に適しています(例.df[['A', 'B', 'C']].applymap(str.strip)
) -
apply
は、ベクトル化できない任意の関数を適用するためのものです(例.df['sentences'].apply(nltk.sent_tokenize)
).
こちらもご覧ください
pandas apply()をコードで使いたい(使いたくない)のはどんなとき?
を使用する最も適切なシナリオについて、しばらく前に作成した記事を参照してください。
apply
(あまり多くはないですが、いくつかあります。) applyは一般的に
遅い
).
まとめ
脚注
map
辞書/シリーズを渡すと、その辞書/シリーズのキーを元に要素をマッピングします。欠落した値は NaNを出力する。
applymap
は、最近のバージョンでは、いくつかの操作に対して最適化されています。そのためapplymap
よりもわずかに速い。apply
で というケースもあります。私の提案は、両方をテストして、うまくいく方を使うことです。 の方が良い。
map
は、要素ごとのマッピングと変換に最適化されています。辞書や系列を含む操作では、パンダは以下のことを可能にします。 は、より高速なコードパスを使用することでパフォーマンスを向上させます。
Series.apply
は,集約操作の場合はスカラーを,そうでない場合はシリーズを返す。同様にDataFrame.apply
. ただしapply
もまた のような特定のNumPy関数で呼び出された場合、ファストパスを使用します。mean
,sum
など。
関連
-
Python百行で韓服サークルの画像クロールを実現する
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 0から9までのランダムな整数を生成する
-
[解決済み] リストにおけるdel、remove、popの違いについて
-
[解決済み] リストとタプルの違いは何ですか?
-
[解決済み] 2つのリストの差を取得する
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenvなどの違いは何ですか?
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Pythonによるjieba分割ライブラリ
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み] apply()関数を1つの列に対して使用するにはどうすればよいですか?
-
[解決済み] 私のコードでpandas apply()を使用したい(したくない)のはどんなときですか?