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

DDD
リリース: 2024-10-25 09:54:02
オリジナル
383 人が閲覧しました

How to Efficiently Add Multiple Columns to a Pandas DataFrame?

複数の列を Pandas DataFrame に同時に割り当てる

Pandas でデータフレームを操作するコンテキストでは、複数の列を効率的に追加する方法について疑問が生じます。

最初の試みとその欠点

多くのユーザーは、このタスクを達成するために当然次の構文を試みます:

df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]
ログイン後にコピー

ただし、Pandas では列リスト構文で新しい列を作成するときに右側が DataFrame である必要があるため、このアプローチは失敗します。

代替アプローチ

複数の実行可能なソリューション望ましい結果を達成するために存在します。推奨されるアプローチのいくつかを次に示します。

1.イテレータのアンパックを伴う単一列代入

df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3
ログイン後にコピー

2. Pandas.DataFrame()

df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)
ログイン後にコピー

による DataFrame の拡張 3. Pandas.concat

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

4.との連結。 Pandas で参加します。join

df = df.join(pd.DataFrame(
    [[np.nan, 'dogs', 3]], 
    index=df.index, 
    columns=['column_new_1', 'column_new_2', 'column_new_3']
))
ログイン後にコピー

5. Pandas.join による辞書拡張

df = df.join(pd.DataFrame(
    {
        'column_new_1': np.nan,
        'column_new_2': 'dogs',
        'column_new_3': 3
    }, index=df.index
))
ログイン後にコピー

6. .assign()

df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)
ログイン後にコピー

7 を使用した複数の列引数。列の作成と割り当て

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

8.個別の割り当て

df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3
ログイン後にコピー

アプローチの選択は、ユーザーの特定の要件によって異なります。簡素化と効率性を考慮すると、多くの場合、個別の割り当てが推奨されるソリューションとなります。ただし、同じ型または値を持つ複数の列を追加する必要がある場合は、他のアプローチにより柔軟性と簡潔性が得られます。

以上がPandas DataFrame に複数の列を効率的に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!