删除特定行中具有特定值的所有列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除特定行中具有特定值的所有列相关的知识,希望对你有一定的参考价值。

我正在寻找一种方法来根据单行的值从我的pandas df中删除所有列,例如,返回一个包含所有行的新df,但只返回行X中为零的那些列。

答案

你可以用lociloc做到这一点

df = pd.DataFrame({'a':[1, 20, 30, 4, 0],
              'b':[1, 0, 3, 4, 0],
              'c':[1, 3, 7, 7, 5],
              'd':[1, 8, 3, 8, 5],
              'e':[1, 11, 3, 4, 0]})


df.loc[:, df.iloc[4,:] == 0]


   a  b  e
0  1  1  1
1  2  0  2
2  3  3  3
3  4  4  4
4  0  0  0
另一答案

好的,我找到了办法。有没有更好/更快/更多的蟒蛇/熊猫解决方案?

zero_cols = df1['X' ==  0 
df2 = df1.loc[:,zero_cols == True]

以上是关于删除特定行中具有特定值的所有列的主要内容,如果未能解决你的问题,请参考以下文章

删除特定列中具有空白值的行

SQL,更新特定行中的列,而不是所有行

pyspark:删除所有行中具有相同值的列

从熊猫数据框中提取在特定列中具有特定值的所有行

删除同一列或连续行的另一列中具有特定值和缺失值的行

从列具有特定值的所有表中选择表名