【发布时间】:2018-07-14 03:13:14
【问题描述】:
如果我想用另一个数据帧的值设置(替换)一部分,我应该能够像这样分配给一个切片(如question):
df.loc[rows, cols] = df2
在这种情况下不是这样,而是将切片归零:
In [32]: df
Out[32]:
A B
0 1 -0.240180
1 2 -0.012547
2 3 -0.301475
In [33]: df2
Out[33]:
C
0 x
1 y
2 z
In [34]: df.loc[:,'B']=df2
In [35]: df
Out[35]:
A B
0 1 NaN
1 2 NaN
2 3 NaN
但它只适用于df2 中的一列(系列),如果我想要多个列,这不是一个选项:
In [36]: df.loc[:,'B']=df2['C']
In [37]: df
Out[37]:
A B
0 1 x
1 2 y
2 3 z
或者如果列名匹配:
In [47]: df3
Out[47]:
B
0 w
1 a
2 t
In [48]: df.loc[:,'B']=df3
In [49]: df
Out[49]:
A B
0 1 w
1 2 a
2 3 t
这是预期的吗?我在文档或 Stackoverflow 中没有看到任何解释。
【问题讨论】: