как группировать по дате и уникальны для каждой группы и считать каждую группу пандами - PullRequest
0 голосов
/ 06 июня 2018

как группировать по дате и уникальны для каждой группы и считать каждую группу с помощью панд?

Количество уникальных MAC-адресов каждый день

pd.concat([df[['date','Client MAC']], df8[['date',"MAC address"]].rename(columns={"MAC address":"Client MAC"})]).groupby(["date"])


one of column , data example
Association Time
Mon May 14 19:41:20 HKT 2018
Mon May 14 19:43:22 HKT 2018
Tue May 15 09:24:57 HKT 2018
Mon May 14 19:53:33 HKT 2018

я использую

starttime=datetime.datetime.now()
dff4 = (df4[['Association Time','Client MAC Address']].groupby(pd.to_datetime(df4["Association Time"]).dt.date.apply(lambda x: dt.datetime.strftime(x, '%Y-%m-%d'))).nunique())
print datetime.datetime.now()-starttime

он работает в течение 2 минут, но он также группирует по времени ассоциации, это неправильно, нет необходимости группировать по времени ассоциации

                  Association Time  Client MAC Address
Association Time
2017-06-21                       1                   3
2018-02-21                       2                   8
2018-02-27                       1                   1
2018-03-07                       3                   3

1 Ответ

0 голосов
/ 06 июня 2018

Я считаю, что нужно добавить ['Client MAC'].nunique():

df = (pd.concat([df[['date','Client MAC']], 
           df8[['date',"MAC address"]].rename(columns={"MAC address":"Client MAC"})])
        .groupby(["date"])['Client MAC']
        .nunique())

Если date s - это даты:

df = (pd.concat([df[['date','Client MAC']], 
                df8[['date',"MAC address"]].rename(columns={"MAC address":"Client MAC"})]))

df = df['Client MAC'].groupby(df["date"].dt.date).nunique()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...