将列向量化分配给列的子集

我有一个包含i行和j列的 Pandas DataFrame 。我想用具有相同i行但k列的第二个 DataFrame 中的所有值替换此 DataFrame 中的值,其中kj的子集。

有效的是这样的:

for col in df2.columns:
    df1[col] = df2[col]

有没有更快,非循环的方法来做到这一点?


白衣非少年
浏览 137回答 1
1回答

拉莫斯之舞

IIUC你可以做df1[df2.columns] = df2假设索引和列标签如您所述匹配在这里,我们df1只传递感兴趣的列的子集,只要索引和列标签匹配,您就可以像这样直接分配。这里不需要迭代如果索引标签不匹配但形状匹配,您可以分配 numpy 数组值:df1[df2.columns] = df2.values这会将值分配为原始值,此方法可能会更快,因为pandas不需要检查与索引标签或列标签的对齐情况,并且应该能够直接分配
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python