我需要将数据框中的某些列作为一个整体进行比较,例如:
df = pd.DataFrame({'A':[1,1,3],'B':[4,5,6]})
#Select condition: If df['A'] == 1 and df['B'] == 4, then pick up this row.
对于这个简单的例子,我可以使用以下方法:
df.loc[(df['A']==1)&(df['B']==4),'A':'B']
然而,实际上我的数据框有数十列,应该作为一个整体进行比较。如果我选择列出所有这些,上面的解决方案将非常非常混乱。所以我认为如果将它们作为一个整体来与列表进行比较可能会解决问题:
#something just like this:
df.loc[df.loc[:,'A':'B']==[1,4],'A':'B')]
没有工作。所以我想出了一个想法,首先将所有所需的列合并到一个新列中作为列表值,然后将这个新列与列表进行比较。后者已解决Pandas:比较系列中的列表对象 https://stackoverflow.com/questions/53102731/pandas-compare-list-objects-in-series
虽然我已经解决了我的问题,但我仍然想知道是否有更简单的方法来解决这个问题?谢谢。