我正在寻找一种方法,根据单行的值从我的 Pandas df 中删除所有列,例如,返回一个包含所有行的新 df,但仅返回 X 行中为零的那些列。
2 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
你可以用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
MM们
TA贡献1886条经验 获得超2个赞
好的,我找到了方法。任何人有更好/更快/更多的pythonian/pandas解决方案吗?
zero_cols = df1['X' == 0 df2 = df1.loc[:,zero_cols == True]
添加回答
举报
0/150
提交
取消