|
27 / 2 / 1
Регистрация: 25.05.2022
Сообщений: 24
|
||||||||||||||||
Разнести значения из одного столбца по остальным в зависимости от значения01.11.2024, 12:20. Показов 1969. Ответов 36
Добрый день.
Создал такой датафрейм
Написал функцию
В общем, задачка вроде простая, но прошу подсказки.
0
|
||||||||||||||||
| 01.11.2024, 12:20 | |
|
Ответы с готовыми решениями:
36
Изменить значения одного столбца в зависимости от значений другого Подстановка одного значения из двух таблиц в зависимости от значения в третьей таблице Вычисление значения функции в зависимости от одного заданного пользователем значения аргумента |
|
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,319
|
|
| 02.11.2024, 17:42 | |
|
M_a_e_s_t_r_o, +1 в формуле - количество неучитываемых столбцов
Для Вашего примера +6 А так - при работе с пандас критически важны реальные данные…
1
|
|
|
27 / 2 / 1
Регистрация: 25.05.2022
Сообщений: 24
|
||||||
| 05.11.2024, 14:54 [ТС] | ||||||
|
Уважаемый volkomorov, прошу ещё раз помочь.
Немного изменилась задача - надо ячейки заполнять не единицей, а значением. Собственно, как сначала озаглавил шапку темы. я понимаю, что в коде
0
|
||||||
|
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
|
|
| 05.11.2024, 15:03 | |
|
А каким значением надо заменить?
0
|
|
|
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,319
|
||||||
| 05.11.2024, 15:35 | ||||||
|
M_a_e_s_t_r_o,
В пандасе есть оказывается метод get_dummies:
https://pandas.pydata.org/docs... mmies.html А заменить 1 на значения можно, просто перемножив матрицу на вектор-столбец (вектор-строку) или просто число
0
|
||||||
|
27 / 2 / 1
Регистрация: 25.05.2022
Сообщений: 24
|
||
| 05.11.2024, 15:48 [ТС] | ||
|
volkomorov,
В датафрейме есть столбец 'SUMM', значением из этой ячейки надо заполнить. (Перечитал свой вопрос - да, действительно, можно понять, что заполнить какой-то константой) Добавлено через 11 минут Gdez, спасибо конечно, но я этого просто не понимаю. Я привык мыслить 30 лет назад перебором таблицы вложенными циклами с сортировкой и подсуммировкой по условию и занесением результата в массив (n-мерный, если нужны итоги по месяцам, отделам и т.д.) - так можно было сделать любой отчёт и сформировать любые данные. Можно, наверное, и в Python такое написать, а смысл тогда писать на Python? Дилемма.
0
|
||
|
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,319
|
|
| 05.11.2024, 15:51 | |
|
M_a_e_s_t_r_o, Хорошо
Если что, вдруг пригодится - старая методичка по пандасу:
0
|
|
|
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
|
|
| 05.11.2024, 16:35 | |
|
просто 1 заменить df['SUM']
0
|
|
|
27 / 2 / 1
Регистрация: 25.05.2022
Сообщений: 24
|
|
| 05.11.2024, 21:16 [ТС] | |
|
просто 1 заменить df['SUM'] - это была первая мысль.
Сделал - не работает, зависло. Потом дошло, что раз добавились столбы,то columns = df_SBP.columns.values не будет верно. Сделал columns = ['ERR', 'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9', 'E10', 'E11', 'E12', 'E0']. Получилось, спасибо.
0
|
|
|
27 / 2 / 1
Регистрация: 25.05.2022
Сообщений: 24
|
||||||||||||||||||||||||||
| 06.11.2024, 16:15 [ТС] | ||||||||||||||||||||||||||
|
volkomorov,
а можно ещё ровно полстрочки кода? мне нужно подсчитать не только сумму ошибочных платежей по дням, но и количество. Родилась такая строка кода:
Решил разделить 'sum' и 'count', добавив в датафрейм столбцы.
Имя датафрейма реальное, оставил как есть. Добавлено через 7 минут Gdez, Вашу методичку смотрел внимательно, там .loc упоминается 2 раза Индексация
Группировка
0
|
||||||||||||||||||||||||||
|
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
|
|||||||||||
| 06.11.2024, 18:32 | |||||||||||
еще вариант
0
|
|||||||||||
|
27 / 2 / 1
Регистрация: 25.05.2022
Сообщений: 24
|
||||||
| 06.11.2024, 20:40 [ТС] | ||||||
|
volkomorov, да, работает. Второй вариант не проверял.
Собственно, задача стара как мир - есть таблица платежей (дата, сумма платежа, код ошибки (семантика нуля - "без ошибки")). Надо сгруппировать (раньше говорили "подсуммировать") по вертикали дням и разложить по горизонтали итоги по дням по кодам ошибок (сумма платежей, кол-во платежей). С формированием этой таблицы из исходной я справился (включая кодирование ошибок, в оригинале - текст, ну и по виду платежа надо было отобрать, и регуляркой типовые ошибки из текстовых сформировать). Но на финише встал, так что спасибо за уделённое время. Возможно, даже итоговую строку кода можно сделать изящнее, чем у меня:
0
|
||||||
|
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
|
||||||
| 06.11.2024, 22:10 | ||||||
|
Можно использовать сводную таблицу
0
|
||||||
|
27 / 2 / 1
Регистрация: 25.05.2022
Сообщений: 24
|
|
| 07.11.2024, 11:18 [ТС] | |
|
volkomorov, спасибо.
Только у меня при формировании pivot KeyError: 'DATA'
0
|
|
|
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
|
|||||||||||
| 07.11.2024, 11:21 | |||||||||||
|
Это пример, в вашем случае надо заменить
0
|
|||||||||||
|
27 / 2 / 1
Регистрация: 25.05.2022
Сообщений: 24
|
||||||
| 07.11.2024, 11:39 [ТС] | ||||||
|
volkomorov,
Да, так работает, но выполняется для всех столбцов, то есть результат выглядит крайне непрезентабельно. Наудачу попробовал
То есть aggfunc должна выполняться для некоторых столбцов, не всех. Ну ладно, главное есть конечный результат.
0
|
||||||
|
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
|
|
| 07.11.2024, 12:06 | |
|
Можно добавить value и указать там нужные столбцы. Более подробная информация по pivot_table есть в документации по pandas.
0
|
|
|
27 / 2 / 1
Регистрация: 25.05.2022
Сообщений: 24
|
||||||
| 07.11.2024, 14:43 [ТС] | ||||||
|
volkomorov, да, оказалось несложно
E0 E1 E10 E11 E12 E2 E3 E4 E5 E6 E7 E8 E9 и заказчик хочет сначала столбец с суммой, а потом с количеством. Но это и в экселе переставить можно.
0
|
||||||
| 07.11.2024, 14:43 | |
|
Построение графика зависимости одного значения от другого, для примера есть график и значения Замена одного значения другим, в зависимости от этого значения Разнести отрицательные, положительные значения и значения из диапазона по разным файлам
Выбрать значения из одного столбца в два столбца Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
|
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
|
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
|
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
|
|
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
|
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока
Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
|
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов
• Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp
• Смежный проект:. . .
|
22. Подключение слоя системной динамики (потоковые диффуры): экономические метрики модели
anaschu 17.06.2026
Апдейт модели: финансовый контур, разделение затрат
Продолжаю развивать модель рабочего коллектива на AnyLogic. В этот раз работа шла над агентом Экономика — финансовым SD-слоем модели. Задача:. . .
|