ホームページ >バックエンド開発 >Python チュートリアル >Pandas で単一のテキスト列から複数の新しい列を効率的に作成するにはどうすればよいですか?
問題:
テキスト列から複数の値を抽出するPandas のテキスト列を作成し、それを新しい列に正しく割り当てるのは難しいことがわかります。
解決策:
複数の値を返す関数を Pandas 列に効率的に適用するには、次を利用します。 zip()関数。このソリューションは、df.iterrows() による反復処理と比較してパフォーマンスを大幅に向上させます。
実装:
<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>
出力例:
num | p1 | p2 | p3 | p4 | p5 | p6 |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 2 | 4 | 8 | 16 | 32 | 64 |
3 | 3 | 9 | 27 | 81 | 243 | 729 |
4 | 4 | 16 | 64 | 256 | 1024 | 4096 |
5 | 5 | 25 | 125 | 625 | 3125 | 15625 |
6 | 6 | 36 | 216 | 1296 | 7776 | 46656 |
7 | 7 | 49 | 343 | 2401 | 16807 | 117649 |
8 | 8 | 64 | 512 | 4096 | 32768 | 262144 |
9 | 9 | 81 | 729 | 6561 | 59049 | 531441 |
以上がPandas で単一のテキスト列から複数の新しい列を効率的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。