我有一个Pandas DataFrame,其中包含 i 行和 j 列。我想用另一个具有相同 i 行但 k 行的第二个DataFrame中的所有值替换此DataFrame中的值>列,其中 k 是 j 的子集。
这是有效的:
for col in df2.columns:
df1[col] = df2[col]
是否有一种更快,更无循环的方法?
答案 0 :(得分:3)
IIUC,您可以做
df1[df2.columns] = df2
假设索引和列标签与您所说的相符
这里,我们取df1
的子集仅传递感兴趣的列,只要索引和列标签匹配,就可以像这样直接分配。
无需在这里进行迭代
如果索引标签不匹配,但形状匹配,则可以分配numpy数组值:
df1[df2.columns] = df2.values
这会将值分配为原始值,因为pandas
不需要检查索引标签或列标签的对齐方式,并且应该能够直接分配