Я пытаюсь сделать пару простых операций с этим набором данных.
Я пытаюсь:
Может кто-нибудь помочь мне написать код для этого, пожалуйста?
вы можете сделать это, используя эта строка кода предоставит вам новый столбец с именем total и значение этот столбец будет средним значением от столбца 0 до 11 и здесь вы можете заменить среднее значение на любую другую операцию, которая вам нужна
df['total'] = df.iloc[:,:12].mean()
Чтобы вычислить общее количество счетчиков, относящихся к каждому кластеру, используйте этот код:
total = df.groupby('clusters')['count'].sum().rename('total of counts')
Чтобы добавить новый столбец «общее количество счетчиков», в котором общее количество счетчиков отображается в паре с соответствующим кластером, используйте этот код:
df = df.join (всего, на = 'кластеры', lsuffix = '')
Чтобы разделить «количество» столбца на «общее количество» и умножить на 100, используйте этот код:
df['количество по общему количеству счетчиков'] = df['количество']/df['общее количество счетчиков']*100
Предполагая, что вы назвали свой фрейм данных df
, вы можете сделать следующее:
пункт 1
используйте метод groupby()
в столбце кластеров и рассчитайте сумму, используя метод агрегации sum()
, например:
df_grouped = df.groupby('clusters').sum()
После этого вы можете переименовать столбец в этом фрейме данных во что-то более полезное, например:
df_grouped = df_grouped.rename(columns = {'count': 'cluster_count'})
пункт 2 Чтобы получить суммарные итоги обратно в ваш фреймворк данных, вы можете объединить grouped_df с исходным фреймворком данных, например:
df_merged = pd.merge(left=df,
right=df_grouped,
left_on='clusters',
right_index=True)
Где вы используете столбец «кластеры», это ключ для вашего левого фрейма данных и используйте индекс фрейма данных df_grouped (значения кластера будут там в индексе после операции groupby()
в точке 1).
пункт 3 Последний шаг теперь тривиален. Просто используйте свой окончательный фрейм данных и добавьте новый столбец, содержащий результат требуемого вычисления:
df_merged['count_pct_cluster'] = df_merged['count'] / df_merged['cluster_count'] * 100
Большое спасибо!! Это было просто и полезно. Потрясающий!