通过索引聚合DataFrame

时间:2018-12-18 17:45:49

标签: python pandas aggregate geopandas

我有以下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

我如何在熊猫中实现这一目标? 谷歌搜索我的问题向我指出了groupby()函数,但我真的不明白如何在这里使用它。

2 个答案:

答案 0 :(得分:1)

max函数应执行以下操作:

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

答案 1 :(得分:1)

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

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