给定df:
foo bar baz
0 0 0
0 5 3
1 0 2
1 6 1
我只想得到恰好有一个0的行:
foo bar baz
0 5 3
1 0 2
我知道df.loc[df['foo'] == 0]
会给出foo列中0的所有行,但它不会跨行比较以确保只有一个0。我的实际数据有更多的列,所以我想要一个不需要键入每个列标题的解决方案。
发布于 2018-06-22 09:10:55
zero_cells = df.apply(lambda x: x==0, axis=0)
zero_counts = zero_cells.apply(lambda x: x.sum(), axis=1)
zero_counts[zero_counts == 1]
#0 False
#1 True
#2 True
#3 False
#dtype: bool
https://stackoverflow.com/questions/50979307
复制相似问题