当某列值为另一DataFrame列子串时,如何实现df2与df1左连接
使用Pandas实现DataFrame左连接
数据说明
- df1(左表)结构与数据:
| ID | Name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
- df2(右表)结构与数据:
| ID | Score |
|---|---|
| 1 | 85 |
| 3 | 90 |
| 4 | 78 |
目标是将df2与df1进行左连接,得到如下结果:
| ID | Name | Score |
|---|---|---|
| 1 | Alice | 85 |
| 2 | Bob | NaN |
| 3 | Charlie | 90 |
实现代码
使用Pandas的merge()方法,指定左连接规则(how='left'),连接键为ID即可实现需求:
import pandas as pd # 构造示例数据 df1 = pd.DataFrame({'ID': [1, 2, 3], 'Name': ['Alice', 'Bob', 'Charlie']}) df2 = pd.DataFrame({'ID': [1, 3, 4], 'Score': [85, 90, 78]}) # 执行左连接:以df1为基准匹配df2数据 result_df = pd.merge(df1, df2, on='ID', how='left') print(result_df)
执行代码后,左表df1中存在但右表df2无匹配的行(如ID=2),对应右表列会填充NaN,完全符合目标输出要求。
内容的提问来源于stack exchange,提问作者sparc
相关产品推荐
相关产品推荐

