如何在Pandas DataFrame中筛选含指定值的数组列?能否不新建列?
无需新建列过滤Pandas数组列的方法
当然可以直接过滤,不需要新建中间列,下面是具体实现方式:
首先构造你的示例DataFrame:
import pandas as pd df = pd.DataFrame({ 'userID': [25, 188, 79], 'goalsID': [[1,2,4,5], [3,6], [1,9]] })
直接过滤的核心代码
利用apply生成布尔掩码,直接对原DataFrame进行索引:
filtered_df = df[df['goalsID'].apply(lambda x: 3 in x)]
结果验证
运行上述代码后,filtered_df的输出为:
userID goalsID 1 188 [3, 6]
这个方法直接在goalsID列上做存在性判断,生成的布尔序列直接用于筛选原数据,全程不需要创建额外的列,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Stepan P.
相关产品推荐
相关产品推荐

