Pandas 関数を使用した複数の新しい列の作成
Pandas では、単一の関数を列に適用し、それに基づいて複数の新しい列を作成できます。
次のシナリオを考えてみましょう。
テキスト列を受け取り、6 つの出力列を返す関数 extract_text_features があります。関数自体は機能しますが、出力を特定の列に割り当てると課題が生じます。
Zip を使用した解決策:
効果的なアプローチの 1 つは、zip 関数を使用して、値を複数の列に出力します:
<code class="python">def powers(x): return x, x**2, x**3, x**4, x**5, x**6 df = pd.DataFrame([[i] for i in range(10)], columns=['num']) df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = zip(*df['num'].map(powers))</code>
ここで、map() 関数は 'num' 列の各行にべき乗を適用し、zip は出力を個々の列に解凍します。
これこのメソッドは、関数の出力値に基づいて複数の新しい列を効率的に生成します。 df.assign() などの新しい機能に依存する他のソリューションとは異なり、古いバージョンの Pandas とも互換性があります。
以上がPandas で単一の関数出力から複数の新しい列を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。