0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 13

Добавить суффиксы повторяющимся значениям

19.02.2024, 13:01. Показов 700. Ответов 4

Студворк — интернет-сервис помощи студентам
Пытаюсь найти наиболее простое решения для такой задачи. У меня есть датафрейм, некоторые строки датафрема могут содержать повторяющиеся значения. Мне нужно к повторяющимся значениям добавить суффиксы с цифрами.

Например у меня есть строка с такими значениями:
значение x, значение y, значение x, значение x, значение z

Мне нужно, чтобы было так:
значение x, значение y, значение x.1, значение x.2, значение z

Можно ли это сделать максимально просто без циклов?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.02.2024, 13:01
Ответы с готовыми решениями:

Вложенные словари. Обработка по повторяющимся значениям
Пробовал составить словарь такого вида, получилось. Попробовал составить часть словаря d = {'item': , 'amount': } d1 ={} for...

Группировка по повторяющимся значениям
Добрый день! Есть таблица в сокращенном варианте как пример: CREATE TABLE Tab (d1 INT, d2 INT, Val INT); INSERT INTO Tab VALUES ...

заполнить строки по повторяющимся значениям
Уважаемые гуру, помогите решить задачку: Есть два файла (две таблицы). В первом файле в столбце A повторяющиеся строки K0043; ...

4
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,318
19.02.2024, 15:46
AQZWSX, Совсем без циклов не получилось:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import pandas as pd 
 
def fun(row):
    dct, res= {}, []
    for e in row:
        if e in dct:
            e += f'.{dct[e]}'
        res.append(e)
        dct[e] = dct.get(e, 0) + 1
    return pd.Series(res)
 
 
df = pd.DataFrame([list('xyxxyz'), list('yzyzyz'), list('zzzxxx')])
print(df)
 
df = df.apply(lambda x: fun(x), axis=1)
print(df)
1
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 13
20.02.2024, 10:26  [ТС]
Цитата Сообщение от Gdez Посмотреть сообщение
AQZWSX, Совсем без циклов не получилось:
Ну я примерно так же себе это представляю. Но хотелось бы проще.

При считывании датафрейма из xlsx или csv, если в исходном массиве есть столбцы с одинаковыми названиями, то python им автоматом суффиксы добавляет. Я думал может быть есть какая-то функция, которую можно точно так же применить к строкам.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,318
20.02.2024, 10:56
AQZWSX,
При считывании датафрейма из xlsx или csv, если в исходном массиве есть столбцы с одинаковыми названиями, то python им автоматом суффиксы добавляет
Потому что там «работа» только с одной строкой - именами столбцов
0
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 13
20.02.2024, 17:01  [ТС]
Не знаю может быть кому-то пригодится. Я решил идти таким путем. Есть способ применить метод read_csv не к файлу, а к строке. Все строки датафрейма нужно сделать переменными-строками, а затем каждую строку считать методом read_csv как датафрейм нулевой длины, и взять от датафрейма только названия столбцов. Выглядит это примерно так:

Python
1
2
3
4
5
6
import io
import pandas
 
df = df.apply(lambda x: '!'.join(x), axis=1) #каждую строку датафрейма превращаем в переменную-строку, в качестве разделителя я здесь использую восклицательный знак
df = df.apply(lambda x: pandas.read_csv(filepath_or_buffer=io.StringIO(x), sep='!').columns) #каждую строку датафрейма считываю как отдельный датафрейм и забираю оттуда только названия столбцов.
df = df.apply(lambda x: pandas.Series(x)) #разделяю данные каждой строки по столбцам
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.02.2024, 17:01
Помогаю со студенческими работами здесь

Объединение строк по повторяющимся значениям
Друзья немного в ступоре, функцией ВПР И СПЕЦИТЬ не получается, мб есть на то дело макрос. У меня есть макрос на удаление задвоений но он...

Необходимо разбить таблицу на части по повторяющимся значениям
Здравствуйте. Необходимо разбить таблицу в Matlab по одинаковым значениям. Например, в столбце таблицы сначала, например, в 5 строках...

Как добавить дополнительные подписи к значениям диаграммы?
Ситуация такая необходимо отразить такие данные на графике а именно 3 строку: 2008 2009 2010 2011 2012 5 4 3 2 1 ...

Добавить одно слово ко всем значениям массива
есть массив типа задача сделать из него массив, вида: т.. добавить путь ($base) Вопрос какой функцией это можно сделать? ...

В описание класса добавить поиск максимального по двум значениям
: Ввести класс с полями 1)марка ТВ 2)диагональ 3) цена. Заполнить массив 5-ю объектами. Вывести номера записей: I)с максимальной...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru