ホームページ > バックエンド開発 > Python チュートリアル > Pandas DataFrame に複数の列を同時に効率的に追加するにはどうすればよいですか?

Pandas DataFrame に複数の列を同時に効率的に追加するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-25 12:36:02
オリジナル
312 人が閲覧しました

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: を使用して一時データフレームと結合する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>
ログイン後にコピー

方法 4: .join を使用して一時データフレームと結合する

<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>
ログイン後にコピー

方法 5: 一時データフレームに辞書を使用する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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート