按零件号过滤

filter by part number

假设我有 ID 参数

ID=[20020,54125,45698,54220]

我只想过滤 ID 中包含“20”的号码。

20020
54220

最好的方法是什么? `

ID=[20020,54125,45698,54220]

df = pd.DataFrame(ID)

使用Series.str.contains:

In [656]: df[df[0].astype(str).str.contains('20')]
Out[656]: 
       0
0  20020
3  54220

注意:根据@Jonas 的评论,此处0 是列的名称。

您还可以在将列表设为数据框之前对其进行过滤:

ID = [20020, 54125, 45698, 54220]
ID = list(filter(lambda x: "20" in str(x), ID))

df = pd.DataFrame(ID)

这里 lambda x: "20" in str(x) 就像一个内联函数,它接受元素作为参数检查字符串 "20" 是否是 in 字符串化参数和 returns 结果。