3
我想基于单个条件筛选基于多列中的值的数据框,但保留其他不适用于其他列的筛选条件所有。熊猫:按多个列中的值进行筛选
我查看了这些问题的答案,与第三是最接近的,但仍没有运气:
- how do you filter pandas dataframes by multiple columns
- Filtering multiple columns Pandas
- Python Pandas - How to filter multiple columns by one value
设置:
import pandas as pd
df = pd.DataFrame({
'month':[1,1,1,2,2],
'a':['A','A','A','A','NONE'],
'b':['B','B','B','B','B'],
'c':['C','C','C','NONE','NONE']
}, columns = ['month','a','b','c'])
l = ['month','a','c']
df = df.loc[df['month'] == df['month'].max(), df.columns.isin(l)].reset_index(drop = True)
电流输出:
month a c
0 2 A NONE
1 2 NONE NONE
所需的输出:
month a
0 2 A
1 2 NONE
我已经试过:
sub = l[1:]
df = df[(df.loc[:, sub] != 'NONE').any(axis = 1)]
和许多其他变化(.all()
,[sub, :]
,~df.loc[...]
,(axis = 0)
),但都没有运气。
基本上我想删除所有'NONE'值的列(位于sub
列表中)。
任何帮助,非常感谢。
所以之前的“电流输出”的一部分,我很高兴一切。实际上,'l = []'会比几个条目长得多,'sub'只是'l'减去前几个条目。它正在筛选列中的'NONE'值,而不是列名本身,我遇到了问题。 – pshep123
只是在我的问题中增加了一点颜色:“基本上我想删除其中包含所有'NONE'值的任何列(在'sub'列表中)。” – pshep123
@ pshep123现在了解。 thx – piRSquared