単一の割り当てで複数の列を 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 DataFrames に複数の列を追加する

Pandas では、さまざまな方法で複数の列を同時に追加できます。 1 つのアプローチは、各列に個別に値を割り当てることですが、複数の列の場合、これは面倒になる可能性があります。より効率的な方法は、1 つのステップで列を追加することです。

一見すると、列リスト構文 (例: df[['new1', 'new2) を使用してリストまたは配列を複数の新しい列に割り当てます。 ]] = [スカラー, スカラー]) は直感的に思えるかもしれません。ただし、この割り当ては既存の列に対してのみ機能します。

新しい列を追加して 1 回の操作で値を割り当てるには、いくつかの方法を使用できます。

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 中国語 Web サイトの他の関連記事を参照してください。

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