我正在寻找一种基于单行值从pandas df中删除所有列的方法,例如,返回一个具有所有行的新df,但仅包含X行中为零的那些列。
答案 0 :(得分:1)
您可以使用loc
和iloc
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]