【发布时间】:2019-08-01 02:02:54
【问题描述】:
python 新手,但似乎无法找到我正在寻找的确切答案 我相信有一种更简单的方法来填写此信息
我有 df1 和 df2
df1: FirstName LastName PhNo uniqueid
df2: uniqueid PhNo
我想填充 df1['PhNo'] 中缺少的值,并根据匹配的 uniqueid == uniqueid 使用 df2 中的匹配值
我使用的代码如下
dff = pd.merge(df1,df2,on = 'uniqueid', how = 'Left')
dff['PhNo'] = 0
dff['PhNo'][df1['PhNo_x'] >= 1] = df1['PhNo_x']
df1['PhNo'][df2['PhNo_y'] >= 1] = df1['PhNo_y']
这似乎可以完成工作,但似乎不是一种有效的方法。我正在寻找比合并更少的行数和更好的技术
df1
FirstName LastName PhNo uniqueid
Sam R 123x 1
John S 345x 2
Paul K np.Nan 3
Laney P no.NaN 4
df2
uniqueid PhNo
1 213x
3 675x
4 987x
想要的输出:df1
FirstName LastName PhNo uniqueid
Sam R 123x 1
John S 345x 2
Paul K **675x** 3
Laney P **987x** 4
【问题讨论】:
-
你能添加一些数据样本,4-5 行预期输出吗?
-
我按要求添加了数据样本...
-
谢谢,所以解决方案效果很好?