Общее количество панд выше порога - PullRequest
0 голосов
/ 09 июня 2018

У меня есть фрейм данных, который я хочу сгруппировать.Я хочу использовать df.agg для определения длины, превышающей 180.

Можно ли написать для нее небольшую функцию?

Я пытался len(nice_numbers[nice_numbers > 180]), но это не такработа.

df = pd.DataFrame(data = {'nice_numbers': [60, 64, 67, 70, 73, 75, 130, 180, 184, 186, 187, 187, 188, 194, 199, 195, 200, 210, 220, 222, 224, 250, 70, 40, 30, 300], 'activity': 'sleeping', 'sleeping', 'sleeping', 'walking', 'walking', 'walking', 'working', 'working', 'working', 'working', 'working', 'restaurant', 'restaurant', 'restaurant', 'restaurant', 'walking', 'walking', 'walking', 'working', 'working', 'driving', 'driving', 'driving', 'home', 'home', 'home}')
df_gb = df.groupby('activity')
df_gb.agg({'count_frequency_over_180'})

спасибо

1 Ответ

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

Создание логической маски по столбцу сравнения по gt с совокупностью sum для значений True s:

df1 = (df['nice_numbers'].gt(180)
                         .groupby(df['activity'], sort=False)
                         .sum()
                         .astype(int)
                         .reset_index())

Аналогичное решение с sum по созданному индексуset_index:

df1 = df.set_index('activity')['nice_numbers'].gt(180).sum(level=0).astype(int).reset_index()
print (df1)
     activity  nice_numbers
0    sleeping             0
1     walking             3
2     working             5
3  restaurant             4
4     driving             2
5        home             1

РЕДАКТИРОВАТЬ:

Для дополнительных показателей для столбца nice_numbers используйте agg:

agg = ('abobe_180_count', lambda x: x.gt(180).sum()), ('average', 'mean')
df1 = df.groupby('activity')['nice_numbers'].agg(agg).reset_index()
print (df1)
     activity  abobe_180_count     average
0     driving                2  181.333333
1        home                1  123.333333
2  restaurant                4  192.000000
3    sleeping                0   63.666667
4     walking                3  137.166667
5     working                5  187.000000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...