Добавление нового столбца в python на основе значения другого столбца pandas python

Я пытаюсь сделать пару простых операций с этим набором данных.

Я пытаюсь:

  1. Подсчитайте общее количество, относящееся к каждому кластеру. Например, для кластера 0 мне пришлось бы суммировать 7+4+61+7+12= 91.
  2. добавьте новый столбец «общее количество подсчетов», где общее количество подсчетов отображается в паре с соответствующим кластером (т. е. строки со значением «0» в столбце «кластеры» будут иметь значение 91 в «общем количестве подсчетов»). ' столбец
  3. разделите «количество» в столбце на «общее количество» и умножьте на 100 (вычислите процентное соотношение). Результат должен быть добавлен в новый столбец.

Может кто-нибудь помочь мне написать код для этого, пожалуйста?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
187
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

вы можете сделать это, используя эта строка кода предоставит вам новый столбец с именем total и значение этот столбец будет средним значением от столбца 0 до 11 и здесь вы можете заменить среднее значение на любую другую операцию, которая вам нужна

 df['total'] = df.iloc[:,:12].mean()
Ответ принят как подходящий
  1. Чтобы вычислить общее количество счетчиков, относящихся к каждому кластеру, используйте этот код:

    total = df.groupby('clusters')['count'].sum().rename('total of counts')

  2. Чтобы добавить новый столбец «общее количество счетчиков», в котором общее количество счетчиков отображается в паре с соответствующим кластером, используйте этот код:

    df = df.join (всего, на = 'кластеры', lsuffix = '')

  3. Чтобы разделить «количество» столбца на «общее количество» и умножить на 100, используйте этот код:

    df['количество по общему количеству счетчиков'] = df['количество']/df['общее количество счетчиков']*100

Большое спасибо!! Это было просто и полезно. Потрясающий!

Valentina Grillo-Alvarado 20.12.2020 12:10

Предполагая, что вы назвали свой фрейм данных 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

Другие вопросы по теме