我如何更新目标DataFrame的值从源DataFrame,满足条件?



这是我的源DataFrame

df = pd.DataFrame({'uid': [1, 2, 3, 5, 6],
'grades': [69.233627, 70.130900, 83.357011, 88.206387, 74.342212]})
这是我的目标DataFrame
df2 = pd.DataFrame({'uid': [1, 2, 9],
'grades': [0.0,0.0,0.0]})

我正在尝试用符合条件的源DataFrame的值更新目标DataFrame。

for i in df2['uid']:
if (len(df[df['uid']==i])>0):
df2.loc[df2['uid']==i, 'grades']=df.loc[df['uid']==i, 'grades']

I've got what I need

>>> df2
uid grades
0   1   69.233627
1   2   70.130900
2   9   0.000000
我只是想知道做这项工作有没有更简单的方法?

使用DataFrame.update并设置uid列的两个索引:

df = df.set_index('uid')
df2 = df2.set_index('uid')
df2.update(df)
df2 = df2.reset_index()
print (df2)
uid     grades
0    1  69.233627
1    2  70.130900
2    9   0.000000

最新更新