我有一個包含i行和j列的 Pandas DataFrame 。我想用具有相同i行但k列的第二個 DataFrame 中的所有值替換此 DataFrame 中的值,其中k是j的子集。有效的是這樣的:for col in df2.columns:
df1[col] = df2[col]有沒有更快,非循環(huán)的方法來做到這一點?
1 回答

拉莫斯之舞
TA貢獻1820條經(jīng)驗 獲得超10個贊
IIUC你可以做
df1[df2.columns] = df2
假設索引和列標簽如您所述匹配
在這里,我們df1
只傳遞感興趣的列的子集,只要索引和列標簽匹配,您就可以像這樣直接分配。這里不需要迭代
如果索引標簽不匹配但形狀匹配,您可以分配 numpy 數(shù)組值:
df1[df2.columns] = df2.values
這會將值分配為原始值,此方法可能會更快,因為pandas
不需要檢查與索引標簽或列標簽的對齊情況,并且應該能夠直接分配
添加回答
舉報
0/150
提交
取消