首页 > 后端开发 > Python教程 > 如何在 Pandas DataFrame 中高效创建多个列?

如何在 Pandas DataFrame 中高效创建多个列?

Susan Sarandon
发布: 2024-10-29 04:24:29
原创
1097 人浏览过

 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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板