ホームページ  >  記事  >  バックエンド開発  >  Pandas スキル: DataFrame の apply メソッドと applymap メソッドの詳細な説明

Pandas スキル: DataFrame の apply メソッドと applymap メソッドの詳細な説明

coldplay.xixi
coldplay.xixi転載
2020-09-17 16:49:023124ブラウズ

Pandas スキル: DataFrame の apply メソッドと applymap メソッドの詳細な説明

関連する学習の推奨事項: Python ビデオ チュートリアル

##今日は

pandas データ処理このトピックの 5 番目の記事では、パンダの高度な操作について説明します。

前回の記事では、2つのデータフレームの四則演算やデータフレームにNullを埋める方法など、パナドの計算方法をいくつか紹介しました。今日の記事では、dataframe のブロードキャスト メカニズムと apply 関数の使用方法について説明します。

データフレーム ブロードキャスト

ブロードキャスト メカニズム実は私たちも馴染みがないわけではなく、以前のnumpy紹介特集記事でブロードキャストについて紹介しました。サイズが一致しない 2 つの配列を操作すると、システムは計算前に、小さい方の次元をもう一方と同じになるように自動的に埋め込みます。

たとえば、2 次元配列から 1 次元配列を減算する場合、numpy はまず 1 ビット配列を 2 次元に拡張し、次に減算演算を実行します。この 1 次元配列から 2 次元配列の各行が減算されているように見えます。この 1 次元配列を減算する操作を 2 次元配列の各行または列にブロードキャストしていることがわかります。

上記の例では、numpy 配列を作成し、その最初の行を減算しました。最終結果を比較すると、arr 配列の各行の最初の行が減算されていることがわかります。

同じ操作をデータフレームに対して実行することもできます。

もちろん、特定の列にブロードキャストすることもできますが、データフレームの四則演算のブロードキャスト メカニズムは、デフォルトでその行に有効になります。列では、算術演算メソッドを使用し、照合する軸を指定する必要があります。

関数とマッピング

pandas のもう 1 つの利点は、 が numpy の一部の計算メソッドおよび関数と互換性があるため、DataFrame 上でもいくつかの numpy 関数を使用できることです。これにより、使用方法と操作方法が大幅に拡張されます。

たとえば、DataFrame 内のすべての要素を正方形に変更したい場合は、numpy の square メソッドを使用して簡単に実行できます。 DataFrame は numpy 関数のパラメータとして渡されますが、自分でメソッドを定義して DataFrame に適用したい場合はどうすればよいでしょうか?

これは、apply メソッド
を使用して簡単に実現できます。apply メソッドは、DataFrame 内の各要素に対してマッピング計算を実行できる Python のネイティブ マップ メソッドに似ています。 apply メソッドで DataFrame に適用したいメソッドを渡すだけです。つまり、受け入れるパラメーターは関数であり、これは非常に典型的な関数プログラミング アプリケーションです。

たとえば、DataFrame を 2 乗したい場合は、np.square 関数をパラメーターとして渡すこともできます。

データフレーム全体で使用される apply メソッドに加えて、特定の行 または 特定の列 に適用することもできます。あるいはある部分では塗布方法は同じです。たとえば、DataFrame の特定の行と特定の列に square メソッドを適用できます。

さらに、apply 関数のスコープは要素に限定されず、行または列に作用する関数を記述することもできます。たとえば、DataFrame の各列の最大値を計算したい場合は、次のように記述できます。 この無名関数の

xx は実際にはSeries の場合、ここでの max は Series に付属する max メソッドです。つまり、apply のスコープは Series であり、最終的にはすべての要素が変更されますが、apply のスコープは要素ではなく Series になります。行または列の操作を適用して、各要素に変更を適用します。

同様に、apply のアプリケーション オブジェクトを行に制限することもできます。同様に、制限するには axis を渡す必要があります。axis='columns' を渡すか、axis=1 を指定します。この 2 つは、効果は同じです。

さらに、apply によって返される結果はスカラーである必要はなく、複数の値で構成されるリストまたはシリーズにすることもできます。実際、この 2 つは次のとおりです。 List が返されても Series に変換されるため、同様です。

最後に、applymap を紹介します。これは、DataFrame 内の各要素を操作するために使用できる 要素レベルのマップです。たとえば、DataFrame 内のデータの形式を変換するために使用できます。

map ではなく applymap と呼ぶ理由は、Series メソッドにすでにマップが存在するため、それを区別するために applymap が作成されたためです。

ここで、上記のコードの applymap を apply に変更すると、エラーが報告されることに注意してください。エラーの理由も非常に単純で、apply メソッドのスコープは要素ではなく Series であり、Series はそのような操作をサポートしていないためです。

まとめ

今日の記事では主に「How」について紹介します。これら 2 つのメソッドは、DataFrame データの日常的な操作で非常に一般的に使用されており、メスレベルの API と言えます。使いこなせるとデータ処理に非常に役立ちますので、Pythonのネイティブマップメソッドの応用を理解していれば、今日の記事もスムーズに理解できると思います。

プログラミングについてさらに詳しく知りたい場合は、php training 列に注目してください。

以上がPandas スキル: DataFrame の apply メソッドと applymap メソッドの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。