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

时间:2019-03-09 00:03:21

标签: python python-3.x pandas

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

2 个答案:

答案 0 :(得分:1)

您可以使用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

答案 1 :(得分:0)

好的,我找到了办法。任何更好/更快/更多pythonian / pandas解决方案的人吗?

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