我有一个大型数据集(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='内部') 并给了我错误的结果
如果没有适当的数据样本,很难在代码中给出完整的答案,但总的来说。
创建一个逻辑掩码,仅当 df2 中的用户出现在 df1 中时该逻辑掩码为 True:
logical_mask = df1['user'].isin(df2['user'])
使用掩码过滤 df1:
df_res = df1[logical_mask]