如何在一次分配中有效地将多列添加到 Pandas DataFrame 中?

Susan Sarandon
发布: 2024-10-25 13:06:02
原创
957 人浏览过

How to efficiently add multiple columns to a Pandas DataFrame in a single assignment?

在单个分配中向 Pandas DataFrame 添加多个列

在 Pandas 中,可以通过多种方式同时添加多个列。一种方法是单独为每一列分配值,但这对于多个列来说可能会变得乏味。更有效的方法是一步添加列。

乍一看,使用列列表语法将列表或数组分配给多个新列(例如 df[['new1', 'new2' ]] = [标量,标量]) 可能看起来很直观。但是,此分配仅适用于现有列。

要在单个操作中添加新列并分配值,您可以使用多种方法:

1.迭代器解包:

<code class="python">df['new1'], df['new2'], df['new3'] = np.nan, 'dogs', 3</code>
登录后复制

此方法迭代地将值分配给每个新列。

2. DataFrame 扩展:

<code class="python">df[['new1', 'new2', 'new3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)</code>
登录后复制

此方法创建一个具有与原始 DataFrame 索引匹配的单行的 DataFrame,然后使用 Pandas 的 concat 函数将新列合并到原始列中。

3.临时 DataFrame 连接:

<code class="python">df = pd.concat([df, pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index, columns=['new1', 'new2', 'new3'])], axis=1)</code>
登录后复制

此方法使用新列和值创建一个临时 DataFrame,然后将其与原始 DataFrame 连接。

4.字典赋值:

<code class="python">df = df.join(pd.DataFrame({'new1': np.nan, 'new2': 'dogs', 'new3': 3}, index=df.index))</code>
登录后复制

此方法使用字典创建一个临时 DataFrame,然后与原始 DataFrame 连接。

5. .assign() 方法:

<code class="python">df = df.assign(new1=np.nan, new2='dogs', new3=3)</code>
登录后复制

.assign() 方法允许一次分配多列。

6.创建列并分配值:

<code class="python">new_cols = ['new1', 'new2', 'new3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist() + new_cols)
df[new_cols] = new_vals</code>
登录后复制

此技术创建空列并分别分配值。

多个单独分配:

<code class="python">df['new1'] = np.nan
df['new2'] = 'dogs'
df['new3'] = 3</code>
登录后复制

虽然不如其他方法高效,但单独分配很简单,并且可用于少量新列。

最佳选择取决于具体要求和性能考虑。对于同时添加多个列,DataFrame 扩展或临时 DataFrame 连接方法提供了简洁高效的解决方案。

以上是如何在一次分配中有效地将多列添加到 Pandas DataFrame 中?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!