【发布时间】:2021-09-17 17:57:45
【问题描述】:
我是 Python 的初学者。我有两个数据框,每个都有 5 列,但每个数据框只有前两列有匹配的数据。每个数据帧都有不同数量的记录。我想将 df1 的 A 列与 df2 的 A 列进行比较,如果它们匹配,则输出列来自 df2 的 D (ownerEmail)。如果 A 列不匹配,则 D 列应为空。
df1
subscriptionId | displayName | state | authorization | tenantId
12345 | DEV_SPS | Enabled | RoleBased | 938c49a8
67890 | PROD_LINUX | Enabled | RoleBased | 0a9cb9ee
11900 | TST_WIN | Enabled | RoleBased | e1513511
df2
subscriptionId | SubName | Connected | ownerEmail | organization
12345 | DEV_SPS | Enabled | john.doe@gmail.com | Marketing
67890 | PROD_LINUX | Enabled | alex.bre@gmail.com | Sales
期望的输出
subscriptionId | displayName | state | authorization | tenantId | ownerEmail
123456 | DEV_SPS | Enabled | RoleBased | 938c49a8 | john.doe@gmail.com
67890 | PROD_LINUX | Enabled | RoleBased | 0a9cb9ee | alex.bre@gmail.com
11900 | TST_WIN | Enabled | RoleBased | e1513511 | null
我尝试过类似的方法,但没有成功。
df1['ownerEmail'] = np.where(df1['subscriptionId'] == df2['subscriptionId'], ['ownerEmail'], "")
print(df1)
任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: python pandas dataframe merge compare