根据pandas df中的列对行进行分组(仅填充布尔值)

时间:2018-11-14 14:03:05

标签: python pandas pandas-groupby

我在熊猫DataFrame上遇到问题。我想我应该使用groupby方法,但我无法正确解决。

我的数据看起来像这样(但是有200行和5000列):

            K00001  K00002  K00003  K00004  K00005  K00009  K00011  K00013   OTU
Root100     True    False   False   True    False   False   True    False    OTU1
Root102     True    False   False   True    False   False   True    False    OTU1
Root105     True    True    False   True    False   False   True    False    OTU1
Root107     True    False   False   True    False   False   True    False    OTU2
Root11      True    False   False   True    True    False   True    False    OTU2

我想根据最后一列“ OTU”对行进行分组,以便:

        K00001  K00002  K00003  K00004  K00005  K00009  K00011  K00013   
OTU1    True    True    False   True    False   False   True    False    
OTU2    True    False   False   True    True    False   True    False

每个单元格的布尔值是每个分组单元格的or布尔比较的结果(例如,对于K00002中的OTU1,它将是False or False or True = True < / p>

有人可以给我一个提示吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

使用GroupBy.any

df = df.groupby('OTU').any()
print (df)
      K00001  K00002  K00003  K00004  K00005  K00009  K00011  K00013
OTU                                                                 
OTU1    True    True   False    True   False   False    True   False
OTU2    True   False   False    True    True   False    True   False