我有以下数据帧df1
name mobile_no
0 Hector ABC 123
1 Hector ABC 287
2 Jose JKD 567
3 Luis AH NaN
4 Billy DH NaN
5 Harry AC 569
和另一个数据帧df2
download_date mobile_no
0 2021-05-30 123
1 2020-09-28 287
2 2021-02-11 789
3 2021-10-06 321
4 2020-01-15 569
如果df1手机号码匹配,我想返回df2的下载日期。执行pd.merge会使df1的行数增加一倍。有没有办法逐行检查并返回下载日期? 我不能在df1中删除重复项(如果有的话),df1中有更多的列。我有点希望它像一个excelvlookup,通过简单地匹配查找值,返回该行所选列的结果。我试过这样的方法:
df1['download_date'] = np.where(df1.mobile_no == df2.mobile_no, df2.download_date, np.nan)
预期结果:
name mobile_no download_date
0 Hector ABC 123 2021-05-30
1 John DYC 237 2020-09-28
2 Jose JKD 567 NaN
3 Luis AH NaN NaN
4 Billy DH NaN NaN
5 Harry AC 569 2020-01-15
你要找的是^{} :
merge
与pd.concat
输出
相关问题 更多 >
编程相关推荐