在索引上聚合DataFrame

3

我有以下DataFrame

                    (polygon object)     ASSAULT     BURGLARY   bank     cafe    crossing
INCIDENTDATE                                                                            
2009-01-01 02:00:00                A           1           0       0        1           0
2009-01-01 02:00:00                A           1           0       0        1           0
2009-01-01 02:00:00                A           1           0       1        0           0
2009-01-01 02:00:00                A           1           0       0        0           1
2009-01-01 02:00:00                A           1           0       0        1           0
2009-01-04 11:00:00                B           0           1       1        0           0
2009-01-04 11:00:00                B           0           1       1        0           0
2009-01-04 11:00:00                B           0           1       0        0           0
2009-01-04 11:00:00                B           0           1       1        0           0
2009-01-04 11:00:00                B           0           1       0        1           0

我希望对该DataFrame进行聚合,只保留唯一的'INCIDENTDATE'。同时,对于每一列(除了多边形列)的值,如果在相同的'INCIDENTDATE'行中至少有一个为1,则将其设为1。 最终的DataFrame应该如下所示:
                    (polygon object)    ASSAULT     BURGLARY    bank     cafe    crossing
INCIDENTDATE                                                                            
2009-01-01 02:00:00                A           1           0       1        1           1
2009-01-04 11:00:00                B           0           1       1        1           0

我该如何在pandas中实现这个功能?通过谷歌搜索,我发现了groupby()函数,但我真的不明白在这里应该如何使用它。


你可以按索引对数据框进行分组,df.groupby(df.index).max() - Vaishali
2个回答

3

我认为只需要在索引中进行重置,然后按照新列进行分组,并查找每个组的最大值:

df.reset_index(inplace=True)
df.groupby('INCIDENTDATE').max()

2

max函数应该做到以下几点:

df.groupby("INCIDENTDATE").agg("max")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接