Python演示了如何在一组行的所有列中选择包含1的最小列数

2024-05-14 06:16:00 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个文档术语为Dataframe。其中每个单元由一个引用矩阵表示。你知道吗

           clover  seed  sowing  stolon
   1489       1     0       0       0
   1488       1     0       0       0
   9677       0     0       1       0
   9996       1     0       0       1
   0557       0     1       0       0
   0564       1     0       0       0
   0958       0     1       1       0
   1272       1     0       0       0
   1965       1     1       1       1
   4326       1     1       1       0
   4531       1     1       1       0
   6026       0     0       1       0
   6030       0     1       0       0

对于第一列“clover”,将数据帧减少到至少3行,其中所有列中都包含1。在当前示例中,三叶草、种子、播种包含3行的1s 1965、4326、4531。结果是:

           clover  seed  sowing  stolon
   1272       1     0       0       0
   1965       1     1       1       1
   4326       1     1       1       0
   4531       1     1       1       0

删除不相关列:

           clover  seed  sowing
   1272       1     0       0 
   1965       1     1       1
   4326       1     1       1
   4531       1     1       1

对于任意数量的列,我如何才能有效地执行此选择过程。你知道吗


Tags: 数据文档示例dataframe数量过程矩阵种子
2条回答

另一种可能是使用df.sum(axis=1)>=3作为掩码。链drop到:

>>> df[df.sum(axis=1)>=3].drop('stolon', axis=1)
      clover  seed  sowing
1965       1     1       1
4326       1     1       1
4531       1     1       1

为了使这更一般:对于n列,将3替换为n。您可以通过传入一个列表来删除多个列,例如drop(['stolon','seed'])

我会这样做:

relevant = ['clover', 'seed', 'sowing']
df[df[relevant].all(1)][relevant]

enter image description here

相关问题 更多 >