Python 以编程方式在多列上使用单个条件筛选数据帧
我尝试在多个列上过滤具有相同条件的数据帧 这可以通过以下操作实现: >>>df=pd.DataFrame{ A1:[1,2,5,1,2], B1:[0,2,0,4,1],, A2:[2,3,5,1,5], B2:[4,1,6,2,1] } >>>df_filtered=df[df['A1']>3 | df['A2']>3] >>>df_过滤 A1 B1 A2 B2 2 5 0 5 6 4 2 1 5 1 但是,我希望能够从预定义变量以编程方式修复列,而不是手动修复,如本例所示: cols=['A1','A2'] df_filtered=df[df[cols]。任意>3]Python 以编程方式在多列上使用单个条件筛选数据帧,python,python-3.x,pandas,Python,Python 3.x,Pandas,我尝试在多个列上过滤具有相同条件的数据帧 这可以通过以下操作实现: >>>df=pd.DataFrame{ A1:[1,2,5,1,2], B1:[0,2,0,4,1],, A2:[2,3,5,1,5], B2:[4,1,6,2,1] } >>>df_filtered=df[df['A1']>3 | df['A2']>3] >>>df_过滤 A1 B1 A2 B2 2 5 0 5 6 4 2 1 5 1 但是,我希望能够从预定义变量以编程方式修复列,而不是手动修复
除了上面的代码显然不起作用之外。然后我们让它起作用:-
cols = ['A1', 'A2']
df[df[cols].gt(3).any(axis = 1)]
Out[556]:
A1 B1 A2 B2
2 5 0 5 6
4 2 1 5 1
然后我们让它工作:-
cols = ['A1', 'A2']
df[df[cols].gt(3).any(axis = 1)]
Out[556]:
A1 B1 A2 B2
2 5 0 5 6
4 2 1 5 1
看起来通过执行以下操作是可能的: >>>df_filtered=df[df[cols]>3.任意轴=1] >>>df_过滤 A1 B1 A2 B2 2 5 0 5 6 4 2 1 5 1
这个答案是在文本发布自己的答案时编辑的,但我还是决定发布它,因为它提供了一个稍微不同的语法 >>>df_filtered=df[df[cols]>3.任意轴=1] >>>df_过滤 A1 B1 A2 B2 2 5 0 5 6 4 2 1 5 1 这个答案是在文本发布自己的答案时编辑的,但我还是决定发布它,因为它提供了稍微不同的语法