微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – pandas:从DataFrame中打印所有非空行

我有这些数据:

time-stamp              ccount  A   B   C   D   E   F   G   H   I
2015-03-03T23:43:33+0000    0   0   0   0   0   0   0   0   0   0
2015-03-04T06:33:28+0000    0   0   0   0   0   0   0   0   0   0
2015-03-04T06:18:38+0000    0   0   0   0   0   0   0   0   0   0
2015-03-04T05:36:43+0000    0   0   0   1   0   0   0   0   0   0
2015-03-04T05:29:09+0000    0   0   0   1   0   0   0   0   1   0
2015-03-04T07:01:11+0000    0   0   1   0   1   0   0   0   0   0
2015-03-03T15:27:06+0000    19  0   1   0   1   0   0   0   0   0
2015-03-03T15:43:38+0000    10  0   1   0   1   1   0   0   0   0
2015-03-03T18:16:26+0000    0   0   0   1   0   0   0   0   0   0
2015-03-03T18:19:48+0000    0   0   0   0   0   0   0   0   0   0
2015-03-03T18:20:02+0000    4   0   0   0   0   1   0   0   0   0
2015-03-03T20:21:55+0000    2   0   0   0   0   0   1   0   0   0
2015-03-03T20:37:36+0000    0   0   0   0   0   0   0   0   0   0
2015-03-04T03:03:51+0000    1   0   0   0   0   0   1   0   0   0
2015-03-03T16:33:04+0000    9   0   0   0   0   0   0   0   0   0
2015-03-03T16:18:13+0000    1   0   0   0   0   0   0   0   0   0
2015-03-03T16:34:18+0000    4   0   0   0   0   0   0   0   0   0
2015-03-03T18:11:36+0000    5   0   0   0   0   0   0   0   0   0
2015-03-03T18:24:35+0000    0   0   0   0   0   0   0   0   0   0

我想要切换A到I列中至少有一个(“1”)的所有行.

对于上述数据,输出将为:

time-stamp              ccount  A   B   C   D   E   F   G   H   I
2015-03-04T05:36:43+0000    0   0   0   1   0   0   0   0   0   0
2015-03-04T05:29:09+0000    0   0   0   1   0   0   0   0   1   0
2015-03-04T07:01:11+0000    0   0   1   0   1   0   0   0   0   0
2015-03-03T15:27:06+0000    19  0   1   0   1   0   0   0   0   0
2015-03-03T15:43:38+0000    10  0   1   0   1   1   0   0   0   0
2015-03-03T18:16:26+0000    0   0   0   1   0   0   0   0   0   0
2015-03-03T18:20:02+0000    4   0   0   0   0   1   0   0   0   0
2015-03-03T20:21:55+0000    2   0   0   0   0   0   1   0   0   0
2015-03-04T03:03:51+0000    1   0   0   0   0   0   1   0   0   0

我们忽略了从A到I的任何列中没有“1”的所有行.

解决方法:

您可以使用any和boolean索引来仅选择至少有一个条目等于1的行:

df[(df.loc[:,['A','B','C','D','E','F','G','H','I']] == 1).any(axis=1)]

如果你有很多它们,那么按标签引用列有点单调乏味,所以你可以使用切片来使事情变得更整洁:

df[(df.loc[:, 'A':'I'] == 1).any(axis=1)]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐