首頁 > 後端開發 > Python教學 > 如何在 Pandas DataFrame 中高效建立多個列?

如何在 Pandas DataFrame 中高效建立多個列?

Susan Sarandon
發布: 2024-10-29 04:24:29
原創
1010 人瀏覽過

 How to Efficiently Create Multiple Columns in a Pandas DataFrame?

使用 Pandas 高效創建多個列

將函數應用於 pandas 列以產生多個新列可能是一項常見任務。然而,找到正確的方法來確保高效且正確的分配可能具有挑戰性。

在 pandas 的早期版本(v0.16 之前)中,經常使用 df.iterrows() 進行迭代。然而,這比更現代的方法要慢得多。經過最近的改進,有幾個有效的選項可用。

一種建議的方法使用 zip() 函數來解壓縮所應用函數的輸出並將它們分配給所需的列。此方法的工作原理是為每一行建立一系列元組,每個元組包含所需的輸出值。然後將元組解壓縮並分配給相應的列。

<code class="python">df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = \
     zip(*df['num'].map(powers))</code>
登入後複製

也可以使用 apply() 函數,它提供了更直接的方法。應用的函數應該傳回一個具有所需列數和與輸入 DataFrame 相符的行索引的 pandas DataFrame。

<code class="python">df = df.apply(lambda x: powers(x['num']), axis=1, result_type='expand')</code>
登入後複製

pandas v0.16 中引入的 allocate() 函數提供了另一個便捷的方法來建立新列。它允許用戶使用表達式直接將新列指派給 DataFrame。

<code class="python">df = df.assign(p1=df['num'].map(lambda x: x),
               p2=df['num'].map(lambda x: x**2))</code>
登入後複製

以上是如何在 Pandas DataFrame 中高效建立多個列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板