这是我的源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