我有两个具有相似但不相等索引的数据框:

df1 = pd.DataFrame(np.random.rand(10,4),columns=list('ABCD'), index = list      ('IJKLMNOPQR'))



df2 = pd.DataFrame({'1': [1,2,3,4,5,6,7], '2':[3,4,5,6,7,8,9]}, index =list('IQLMRFW') )


我想做的是用df2的第1列中的值替换df1的A列中的值,其中df1和df1共享一个索引值。例如,随机值df1 [I,A]将替换为df2 [I,1]。

有比使用for循环更有效的方法吗?

最佳答案

如果只想更改df1中的A列,请使用Series.update

df1['A'].update(df2['1'])

print(df1)

          A         B         C         D
I  1.000000  0.047654  0.260428  0.391113
J  0.305520  0.021654  0.634946  0.084545
K  0.577922  0.846770  0.783604  0.330981
L  3.000000  0.566063  0.620431  0.490843
M  4.000000  0.612603  0.145364  0.701902
N  0.665450  0.910101  0.909424  0.574349
O  0.245765  0.457923  0.383724  0.945154
P  0.301374  0.674204  0.029119  0.011912
Q  2.000000  0.680618  0.041484  0.783958
R  5.000000  0.192027  0.851710  0.330989

关于python - 用相似的索引替换Pandas DataFrames中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50690699/

10-16 02:10