同时向 Pandas Dataframe 添加多个列:分步指南
在数据分析的过程中,通常有必要使用额外的列来扩充现有的 Pandas 数据框。为了简化此过程,我们寻求一种简化的方法来一次添加多个列。
最初的误解:为多个列分配值
直觉上,人们可能会期望以下内容完成任务的语法:
<code class="python">df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]</code>
但是,由于 Pandas 对列列表赋值右侧的要求 (df[[new1, new2]] = .. .) 成为一个 DataFrame。
工作解决方案:分配多个列
我们毫不畏惧,通过各种技术来实现我们的目标:
1.用于同时分配的迭代器解包
<code class="python">df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3</code>
2.使用 DataFrame() 扩展单行
<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 连接
<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.使用临时 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>
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() 用于多列参数 (Python 3.6 )
<code class="python">df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)</code>
7.创建列,分别赋值
<code class="python">df['column_new_1'] = np.nan df['column_new_2'] = 'dogs' df['column_new_3'] = 3</code>
8.单独的作业
虽然它缺乏其他解决方案的优雅,但这种方法仍然很简单:
<code class="python">df['column_new_1'] = np.nan df['column_new_2'] = 'dogs' df['column_new_3'] = 3</code>
以上是如何同时向 Pandas DataFrame 添加多个列?的详细内容。更多信息请关注PHP中文网其他相关文章!