将一个 Pandas 数据框中的多行和多列分配给另一个

邦邦

什么是规范的方式来做到这一点?对我来说最明显的语法不起作用。就好像 Pandas 试图将整个数据框用于每个相关元素。

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
贝尼

使用 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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用另一个值替换pandas数据框列中的几个值

根据三列将一个Pandas数据框中的行与另一个数据框中的行匹配

将列从一个数据框添加到另一个python pandas

将多索引数据框的顺序与另一个多索引df,pandas的顺序对齐

Python Pandas根据在另一个数据框中的查找将列添加到数据框

将MultiIndex Pandas数据框乘以另一个数据框的多个标量

如何在将两个列中的公共列值匹配的同时将列从pandas数据框复制到另一个?

pandas数据框将列值追加到另一个具有列表元素的pandas列

根据Pandas中的一个公共列从另一个数据框更新多个列

根据Pandas中的ID将列值从一个数据框复制到另一个数据框

将多个numpy列分配给一个pandas数据框列

如何基于Pandas数据框中的另一个列值添加列?

Python Pandas:将数据框从一个导入库传递到另一个

如何将一个Pandas数据框列与一个日期和另一个与时间合并?

使用另一个数据框将值分配给多列数据框

根据特定列将pandas数据框列替换为另一个数据框

在pandas数据框中插入/添加另一个列级别

Pandas 数据框:搜索并将唯一值分配给另一个数据框

加入来自另一个 Pandas 数据框的多列

Pandas - 根据另一个填充一个数据框列

如何将一个数组的多行和多列分配给 Python 中另一个数组的相同行和列?

如何从另一个 Pandas 数据框中逐列缩放

Pandas:来自条件和另一个数据框的新列

基于 Pandas 中的另一个数据框计算多列的加权平均结果

将一个数据框中的值附加或连接到 Pandas 中另一个数据框中的每一行

将 pd.series 中的 Pandas 中的列名分配给一个循环

将一个数据框中的列的值分配给另一个数据框中的列

将数据框中的列连接到另一个数据框中 - Pandas

如果多列中的值与另一个数据框匹配,则根据 pandas 的日期范围获取总和