如何根据数值数组筛选DataFrame中dayNo列匹配的行?
解决DataFrame筛选匹配数组值的问题
你之前的代码逻辑错误,df['dayNo'] == [np.array([profiles], dtype=bool)]的写法不符合Pandas的筛选规则,正确的方式是使用isin()方法来检查列值是否存在于目标数组中:
profiles = [310, 47, 161, 51, 78, 162, 303, 314, 176, 54] df2 = df.loc[df['dayNo'].isin(profiles)]
关键说明
isin()会生成一个布尔Series,标记每行的dayNo是否在profiles数组内,用这个结果作为loc的索引就能筛选出目标行- 若要验证结果,可执行
print(df2['dayNo'].unique()),查看保留的唯一值是否和profiles匹配 - 如果
profiles包含重复值,筛选结果会保留所有匹配的行,和原DataFrame的重复情况一致
内容的提问来源于stack exchange,提问作者K.Best
相关产品推荐
相关产品推荐

