You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用内连接合并两个Pandas DataFrame并指定保留列?

解决方法

你可以通过两种方式实现只保留指定列的内连接:

方法一:先筛选列再合并(推荐,更高效)

先从df_user_device中提取你需要的列(use_id、platform、device),再和df_user_usage执行内连接,这样合并后的结果自动只包含需要的列:

import pandas as pd

# 先筛选df_user_device的目标列,再合并
merged_df = pd.merge(
    df_user_usage,
    df_user_device[['use_id', 'platform', 'device']],
    how='inner',
    on='use_id'  # 明确指定连接键,避免自动匹配时的歧义
)
print(merged_df.head())

方法二:先合并再筛选列

如果需要先查看完整的合并结果再筛选,也可以先执行全列合并,再提取目标列:

import pandas as pd

# 先执行全列内连接
merged_df = pd.merge(df_user_usage, df_user_device, how='inner', on='use_id')
# 筛选需要的列:保留df_user_usage的所有列,加上platform和device
target_cols = df_user_usage.columns.tolist() + ['platform', 'device']
merged_df = merged_df[target_cols]
print(merged_df.head())

注意说明

你提供的示例数据中,两个DataFrame的use_id没有重叠值,所以合并后的结果会是空DataFrame,这属于正常现象——内连接只会保留两边都存在的use_id对应的数据。

内容的提问来源于stack exchange,提问作者Amirhossein Bayani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 23:08:18