給定一個帶有索引行的DataFrame,您希望合併一個附加列無需修改現有資料。例如,給定 DataFrame:
<pre class="brush:php;toolbar:false"> a b c d
2 0.671399 0.101208 -0.181532 0.241273
3 0.4461532 0.241273
3 0.44617367631. 1.577318
5 0.614758 0.075793 -0.451460 -0.012493
加入名為'e' 的列,其中包含以下值:
1 -1.166658<br>2 -0.385571<br>dtype: float64<br>
編輯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中文網其他相關文章!