Pandas の関数から複数の新しい列を効率的に作成するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-28 20:58:02
オリジナル
104 人が閲覧しました

How to Efficiently Create Multiple New Columns from a Function in Pandas?

Pandas を使用して関数から複数の新しい列を作成する

Pandas では、関数に適用されたカスタム関数に基づいて複数の新しい列を作成する必要がある状況が発生することがあります。既存のコラム。このタスクは単純そうに見えますが、関数の期待される戻り値の型によって予期せぬ問題が発生する可能性があります。

独自のアプローチ: インデックス範囲への代入

最初に、次の出力を代入しようとするかもしれません。 df.ix[: ,10:16] = df.textcol.map(extract_text_features) 構文を使用して、DataFrame 内のインデックスの範囲に直接関数を実行します。ただし、このアプローチでは、関数の戻り値の型に互換性がないため、エラーが発生することがよくあります。

反復可能な解決策

考えられる解決策の 1 つは、df.iterrows() を使用して DataFrame の各行を反復処理することです。 )。このメソッドを使用すると、関数を各行に個別に適用し、結果をタプルとして取得できます。ただし、このアプローチは他のオプションよりも大幅に遅くなる可能性があります。

zip() の使用

より効率的で柔軟なアプローチは、zip() 関数を map() と組み合わせて使用​​して、新しい列。 zip() 関数は、関数の出力をタプルに結合し、個別の列に解凍できます。たとえば、次のコードは、zip() メソッドを使用して 6 つの新しい列を作成する方法を示しています。

<code class="python">df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = zip(*df['num'].map(powers))</code>
ログイン後にコピー

改良された DataFrame メソッド

Pandas の最近の更新により、関数を適用するためのより便利なメソッドが導入されました。列への追加と新しい列の作成。たとえば、 df.apply() メソッドを使用すると、出力形式 (DataFrame、Series、またはリスト) を指定し、追加のパラメーターを処理できます。さらに、df.assign() メソッドを使用すると、出力を明示的に割り当てることなく、新しい列を直接作成できます。これらの新しいメソッドにより、関数に基づいて複数の新しい列を作成する際の柔軟性と効率が向上します。

以上がPandas の関数から複数の新しい列を効率的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!