Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/88: Рейтинг темы: голосов - 88, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 27.03.2022
Сообщений: 4

Выведите полученные значения на экран на отдельных строках в обычном порядке

02.04.2022, 23:55. Показов 18158. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Прохожу вводную часть на Яндекс Практикум. Задача

Чтобы найти средние показатели, в каждом сегменте разделите количество робокотов на количество обращений. Выведите полученные значения на экран на отдельных строках в обычном порядке: нулевой, первый, второй.
Удобнее всего добавить в подсчёт робокотов для каждого сегмента из предыдущего задания подсчёт обращений, а затем вывести на экран результат деления одного на другое:
Python
1
2
3
4
5
6
7
cats = 0
counter = 0
for index in range(len(data)):
    if segment[index] == 'Segment 0': 
        cats += robocats[index] 
        counter += 1
print(cats / counter)
Мой код

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
       import pandas
 
       data = pandas.read_csv('support_data.csv')
 
       segment = list(data['segment'])
       robocats = list(data['robocats'])
 
       zero_segment = 0
       first_segment = 0
       second_segment = 0 
       counter = 0  
                                    
       for value in range(len(data)):
           if segment[value] == 'Segment 0':
              zero_segment += robocats[value]
              counter += 1
           if segment[value] == 'Segment 1':
              first_segment += robocats[value]
              counter += 1
           if segment[value] == 'Segment 2':
              second_segment += robocats[value]
              counter += 1
 
      print(zero_segment / counter)  
      print(first_segment / counter)
      print(second_segment / counter)
Выдает ошибку - неверное значение переменной. Я понимаю, что нужно вычислить значение counter, но не могу понять как.
Вот столбцы из датасет

customer_id — уникальные идентификаторы клиентов;
interval — период: 'До внедрения роботов' или 'После внедрения роботов';
score — оценка пользователя после обращения в службу поддержки;
duration — продолжительность общения с поддержкой;
promo — получил ли пользователь промокод: 1 — да, 0 — нет;
robocats — количество робокотов у пользователя на момент обращения.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2022, 23:55
Ответы с готовыми решениями:

Выведите состояние массива после каждой вставки на отдельных строках
Помогите решить эту задачу , с объяснениями, если можно: Продемонстрируйте работу метода сортировки вставками по возрастанию. Для этого...

Вывести полученные "куски" поочередно на отдельных строках
Вводится слово затем число – шаг отреза. Сначала отрубить "кусок", равный шагу, с конца слова, затем такой же "кусок" с начала,...

Вывести полученные списки в порядке возрастания по сумме абсолютных значений отдельных элементов
Дан список из 30 случайных целых и дробных чисел от -100 до +100. Сформировать из списка 10 списков по 3 элемента. N = print(N) ...

7
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
03.04.2022, 05:34
Ayzora, Выложи базу данных data (или хотя бы часть) и значения Segment 0, Segment 1, Segment 2
Предварительно - скорее всего перевод значений в список:
Python
1
2
segment = list(data['segment'])
robocats = list(data['robocats'])
нужно
Python
1
2
segment = data['segment'].to_list()
robocats = data['robocats'].to_list()
https://pandas.pydata.org/pand... _list.html
0
0 / 0 / 0
Регистрация: 27.03.2022
Сообщений: 4
03.04.2022, 12:58  [ТС]
Добрый день! Да-да, извините, вчера уже просто не соображала к вечеру.
Суть задачи "В Moscow Catnamycs необычная ситуация: удовлетворённость клиентов и продажи растут, а доходы при этом падают.
В этом случае у вас есть зацепка: доходы компании начали снижаться, когда роботы «Роберты» в службе поддержки стали получать высокие оценки клиентов."
Далее открытие датасет([32540 rows x 7 columns]), далее выяснение что в столбце interval есть два периода('До внедрения роботов' или 'После внедрения роботов'), далее что в segment три уникальных значения (соответственно 29673, 2468, 399), далее нужно понять что объединяет пользователей каждого сегмента(предположение что количество робокотов), для этого считаем общее количество робокотов в каждом сегменте(из столбца robocats, соответственно 0, 2468, 3964)
И теперь я не могу понять откуда и как брать "количество обращений" на которых нужно делить робокотов. Ведь по сути весь датасет это же и есть количество обращений? Или я неправильно понимаю вводные задачи?
Вот часть датасет которая открывается:
customer_id segment ... promo robocats
0 cst_5930999721 Segment 0 ... 0 0
1 cst_8129349913 Segment 0 ... 0 0
2 cst_0760362226 Segment 0 ... 0 0
3 cst_7443009819 Segment 0 ... 0 0
4 cst_9187686101 Segment 0 ... 0 0
... ... ... ... ... ...
32535 cst_1333260888 Segment 2 ... 0 12
32536 cst_6816052366 Segment 2 ... 0 7
32537 cst_7096819028 Segment 2 ... 0 14
32538 cst_8907977961 Segment 2 ... 0 11
32539 cst_3452655724 Segment 2 ... 0 12
[32540 rows x 7 columns]

Добавлено через 8 минут
Цитата Сообщение от Ayzora Посмотреть сообщение
volvo
Я пока не разобралась в правильном оформлении постов на форуме, если вы укажете где искать информацию об этом буду очень благодарна! Я пыталась править вручную, но при отправке сообщения все пропадает.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
03.04.2022, 13:46
Ayzora,
вывести на экран результат деления одного на другое:

Python
1
2
3
4
5
6
7
8
9
10
import pandas as pd 
import numpy as np 
 
data = pd.DataFrame(
{'segment': ['Segment 0']*3 + ['Segment 1']*4 + ['Segment 2']*5,
'robocats': list(range(12))})
print(data)
res = data.groupby(['segment'])['robocats'].sum() / \
data.groupby(['segment'])['segment'].count()
print(*res.to_list(), sep='\n')
Добавлено через 2 минуты
Числитель в res - сумма по колонке robocats для уникальных по segment
Знаменатель - количество уникальных значений по segment
1
0 / 0 / 0
Регистрация: 27.03.2022
Сообщений: 4
03.04.2022, 19:32  [ТС]
Спасибо! Только я до этого уровня еще не дошла) Пока все задачи решаются на примитивном уровне, через циклы и переменные
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
03.04.2022, 19:52
Ayzora, в pandas циклы - "зло".
0
0 / 0 / 0
Регистрация: 27.03.2022
Сообщений: 4
03.04.2022, 21:58  [ТС]
Так это не мое желание, оформление задачи должно быть согласно пройденной теме. То есть я не могу написать то, что не изучала(
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
04.04.2022, 04:22
Ayzora,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
       import pandas
 
       data = pandas.read_csv('support_data.csv')
 
#############################
       # segment = list(data['segment')
       # robocats = list(data['robocats'])
       segment = data['segment'].to_list()
       robocats = data['robocats'].to_list()
#############################
 
       zero_segment = 0
       first_segment = 0
       second_segment = 0 
       counter = 0  
                                    
       for value in range(len(data)):
           if segment[value] == 'Segment 0':
              zero_segment += robocats[value]
              counter += 1
           elif segment[value] == 'Segment 1':
              first_segment += robocats[value]
              counter += 1
           elif segment[value] == 'Segment 2':
              second_segment += robocats[value]
              counter += 1
 
      print(zero_segment / counter)  
      print(first_segment / counter)
      print(second_segment / counter)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.04.2022, 04:22
Помогаю со студенческими работами здесь

Выведите цифры числа по одной, в обычном порядке, разделяя их пробелами или новыми строками.
Цифры числа слева направо Дано натуральное число N. Выведите все его цифры по одной, в обычном порядке, разделяя их пробелами или новыми...

Дано натуральное число N. Выведите все его цифры по одной, в обычном порядке, разделяя их пробелами или новыми
Дано натуральное число N. Выведите все его цифры по одной, в обычном порядке, разделяя их пробелами или новыми строками. При решении...

Рекурсия. Дано натуральное число N. Выведите все его цифры по одной, в обычном порядке, разделяя их пробелами или новыми строками
Привет! Начал изучать рекурсию на с++, прочитал несколько статей и понял, что ничего не понял:) Нашел несколько заданий, вот одно из них:...

Разбить предложения на слова и вывести их на экран в отдельных строках
Пользователь вводит большое предложение. Необходимо разбить предложения на слова и вывести их на экран в отдельных строках

Выведите в n строках номера предметов в том порядке, в котором их следует сдавать
Сессия Ограничение времени:1 секунда Ограничение памяти:64Mb Ввод:стандартный ввод или input.txt Вывод:стандартный вывод или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru