什么是规范的方法?对我来说,最明显的语法不起作用。就像熊猫在尝试将整个数据框包含到每个相关元素中一样。
foo = pd.DataFrame(np.zeros((5,2), dtype=int), columns=['a','b'])
foo2 = foo.copy()
bar = pd.DataFrame([[1,2], [3,4]], index=[1,3], columns=['c','d'])
foo.loc[bar.index,['a','b']] = bar.loc[:,['c','d']]
# same result for foo.loc[bar.index, :] = bar
print(foo)
产生:
a b
0 0.0 0.0
1 NaN NaN
2 0.0 0.0
3 NaN NaN
4 0.0 0.0
但是,您可以一次分配一个系列,这需要循环。
for (foo_col, bar_col) in zip(foo2.columns, bar.columns):
foo2.loc[bar.index, foo_col] = bar[bar_col]
print(foo2)
产生:
a b
0 0 0
1 1 2
2 0 0
3 3 4
4 0 0
答案 0 :(得分:3)
使用update
foo = pd.DataFrame(np.zeros((5,2), dtype=int), columns=['a','b'])
bar = pd.DataFrame([[1,2], [3,4]], index=[1,3], columns=['c','d'])
foo.update(bar.rename(columns=dict(zip(bar.columns,foo.columns))))
foo
Out[51]:
a b
0 0.0 0.0
1 1.0 2.0
2 0.0 0.0
3 3.0 4.0
4 0.0 0.0