只需从列表中选择至少存在一个值的行
我尝试使用isin
函数,如下所示,但它也返回列表中没有任何值的行:-
df[(df.loc[:,'P_1':'P_90'].isin(list))]
Note:-
P_1 to P_90
indicated range of columns. Sample data:- dib-cust_id|p_1|p_2|.......|p_90 345|1950|1860|..............|675Note:- I can't provide exact data as it's confidential. Above is just an example how dataframe will look like with 91 columns.
请让我知道这个方法有什么问题,还有没有其他方法可以得到想要的结果
您需要的是:
好的,这是任何不匹配的值,所以您实际上需要:
这肯定不是最有效的
当前公式不起作用的原因是,基本上返回的是带有
isin
的真/假数组,而不是列表isin
不删除行,它根据值是否在给定列表中,将单元格标记为True
或False
。因此True
/False
的数组具有与原始df相同的索引,当您执行df[array]
操作时,它将采用该数组的索引,也称为相同的索引不是给每个细胞提供
True
或False
,而是给每行-此时pandas将以您想要的方式进行过滤相关问题 更多 >
编程相关推荐