我有两个具有相似但不相等索引的数据框:
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/