使用pandas将筛选器列表应用于来自列表的数据帧

2024-10-02 02:33:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列列表,可以在来自列表的数据帧中应用过滤器。过滤器值来自另一个列表。在

早些时候,当列表已修复时,我使用以下语句来完成任务:

df_result= df[(df[filterfieldList[0]] == filterValuesList[0]) & (df[filterfieldList[1]] == filterValuesList[1]) & (df[filterfieldList[2]] == filterValuesList[2])]

但随着时间的推移,我得到了一个新的要求,即过滤列表是动态的,我现在不知道该怎么做。在中,有时过滤器列表只有2个字段要过滤,有时是3个或5个。 在这种情况下如何进行过滤?在

样本数据:

^{pr2}$

Tags: 数据过滤器df列表时间情况动态语句
1条回答
网友
1楼 · 发布于 2024-10-02 02:33:19

我认为create masks需要列表理解,然后对reduce和last filter by ^{}进行^{}

filterfieldList = ['A','B','E']
filterValuesList = ['Project 1', 'Org_1', 'Unable to Login']

tups = zip(filterfieldList, filterValuesList)
df_result = df[np.logical_and.reduce([(df[i] == j) for i, j in tups])]
print (df_result)
           A      B          C     D                E
1  Project 1  Org_1  Directory  MSTR  Unable to Login
4  Project 1  Org_1  Directory  MSTR  Unable to Login

编辑:

如果需要,每行合并多个筛选器:

^{pr2}$

相关问题 更多 >

    热门问题