複数の列を 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 サイトの他の関連記事を参照してください。