如何同时高效地将多个列添加到 Pandas DataFrame 中?

Linda Hamilton
发布: 2024-10-25 12:36:02
原创
212 人浏览过

How to Efficiently Add Multiple Columns to a Pandas DataFrame Simultaneously?

同时向 Pandas DataFrame 添加多个列

在 Pandas 数据操作中,高效地向 DataFrame 添加多个新列可能是一项需要优雅解决方案的任务。虽然使用带有等号的列列表语法的直观方法可能看起来很简单,但它可能会导致意想不到的结果。

挑战

如提供的示例所示,以下语法无法按预期创建新列:

<code class="python">df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]</code>
登录后复制

这是因为在使用列列表语法时,Pandas 要求赋值的右侧为 DataFrame。标量值或列表与此方法不兼容。

解决方案

几种替代方法提供了同时添加多个列的可行解决方案:

方法 1:单独分配使用迭代器解包

<code class="python">df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3</code>
登录后复制

方法2:扩展单行以匹配索引

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

方法3:与临时DataFrame结合使用pd.concat

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

方法四:使用.join与临时DataFrame合并

<code class="python">df = df.join(pd.DataFrame(
    [[np.nan, 'dogs', 3]], 
    index=df.index, 
    columns=['column_new_1', 'column_new_2', 'column_new_3']
))</code>
登录后复制

方法五:使用字典临时DataFrame

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

方法 6:使用 .assign() 和多个列参数

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

方法 7:创建列,然后赋值

<code class="python">new_cols = ['column_new_1', 'column_new_2', 'column_new_3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist() + new_cols)    # add empty cols
df[new_cols] = new_vals        # multi-column assignment works for existing cols</code>
登录后复制

方法 8:多个连续赋值

<code class="python">df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3</code>
登录后复制

选择最合适的方法将取决于 DataFrame 的大小、要添加的新列的数量以及任务的性能要求。尽管如此,这些技术为 Pandas 用户提供了多种选项,可以有效地将多个列添加到他们的 DataFrame 中。

以上是如何同时高效地将多个列添加到 Pandas DataFrame 中?的详细内容。更多信息请关注PHP中文网其他相关文章!

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