给定一个带有索引行的 DataFrame,您希望合并一个附加列无需修改现有数据。例如,给定 DataFrame:
<pre class="brush:php;toolbar:false"> a b c d
2 0.671399 0.101208 -0.181532 0.241273
3 0.446172 -0.243316 0.051767 1.577318
5 0.614758 0.075793 -0.451460 -0.012493
添加名为 'e' 的列,其中包含以下值:
<br> 0 -0.335485<br>1 -1.166658<br>2 -0.385571<br>dtype: float64<br></p>
编辑2017
最有效的方法,如@Alexander建议并在评论中指出,是使用分配方法:
df1 = df1.assign(e=pd.Series(np.random.randn(sLength)).values)
编辑 2015
一些用户报告遇到SettingWithCopyWarning 使用原始代码。但是,该代码在当前的 pandas 版本 0.16.1 中仍然有效。
sLength = len(df1['a']) df1['e'] = pd.Series(np.random.randn(sLength), index=df1.index)
原始答案
使用 df1 的原始索引创建一个 Series 并分配到新栏:
df1['e'] = pd.Series(np.random.randn(sLength), index=df1.index)
以上是如何有效地向 Pandas DataFrame 添加新列?的详细内容。更多信息请关注PHP中文网其他相关文章!