問題:
從一個文字中擷取多個值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中文網其他相關文章!