根据另一个数据集 (df2) 中的变量保留(过滤)df1 中的观察结果

问题描述 投票:0回答:1

我有一个大型数据集(df1),每个用户有多个观察结果(600 万行),我只想查看某些用户的观察结果。所选用户列表来自另一个数据集 (df2)(4000 个用户)。 df1包含df2的所有内容。 这是简化的示例: df1: date_stata 小时用户
0 2023 年 3 月 20 日 9 点
1 20mar2023 9 a
2 2023 年 3 月 20 日 9 点
3 20mar2023 9 b
4 2023年3月20日 9 b 5 2023 年 3 月 20 日 12 点

df2: date_stata 小时用户
0个
1 c

我应该如何在 Python os Stata 中执行此操作?

我希望我的输出如下所示: date_stata 小时用户
0 2023 年 3 月 20 日 9 点
1 20mar2023 9 a
2 2023 年 3 月 20 日 9 点
3 2023 年 3 月 20 日 12 点

谢谢你

我尝试过: # 根据“用户”列中的匹配值过滤 DataFrame Filtered_df = df.merge(df2[['用户']], on='用户', how='内部') 并给了我错误的结果

python join merge filtering
1个回答
0
投票

如果没有适当的数据样本,很难在代码中给出完整的答案,但总的来说。

  1. 创建一个逻辑掩码,仅当 df2 中的用户出现在 df1 中时该逻辑掩码为 True:

    logical_mask = df1['user'].isin(df2['user'])

  2. 使用掩码过滤 df1:

    df_res = df1[logical_mask]

© www.soinside.com 2019 - 2024. All rights reserved.