我正在做一些Pandas 数据帧的工作,我需要根据不同的列过滤数据.这很容易通过PANAS语法完成,如下面的最小工作示例所示:
import pandas as pd
#Create DataFrame
df = pd.DataFrame({'col1':['one','two','three','four', 'five'],'col2':[1,2,3,4,5],'col3':[0.3,0.4,0.5,0.6,0.7], 'col4':[0.4,0.5,0.6,0.7,0.8]})
print(df)
#Filter wanted values
print(df[(df['col1'] == 'one') & (df['col2'] == 1)])
问题是,当您必须筛选的列数很大(超过4列)时,这个语法很快就会变成一个由&
和|
组成的非常长的链,上面有很多冗余的元素,之后真的很难阅读.我在这里举一个这样的例子:data_raw[(data_raw['Metales'] == 'MoO3') | (data_raw['Metales_0'] == 'MoO3') | (data_raw['Metales_1'] == 'MoO3')| (data_raw['Metales_2'] == 'MoO3')]
(这只是为了说明它变得多长而不能舒适地阅读,从理论上讲,我不需要为两个不同的值判断同一列)
有没有一种更简单、更简洁的方法来 Select 一组不同列中的值?