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

Замена значений в столбце датафрейма из другого датафрейма

21.12.2022, 23:43. Показов 4728. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Есть фрейм данных в столбце которого нужно навести порядок, привести значения к единому виду. Нужно это сделать следующим образом: Создать новый фрейм в котором 2 столбца, первый это значение которое нужно заменить, второй это значение на которое нужно заменить, фрейм будет браться из экселя и иногда дополняться. Вижу только 1 выход, методом перебора пробежаться по столбцу из первого фрейма сравнить со столбцом из второго, но что то мне подсказывает, что в пандасе можно сделать это проще. Подскажите как.
Миниатюры
Замена значений в столбце датафрейма из другого датафрейма   Замена значений в столбце датафрейма из другого датафрейма  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2022, 23:43
Ответы с готовыми решениями:

Значение по условию в столбце датафрейма
В зависимости от значения столбца 1 необходимо вычислить значение в столбце 4 используя значение в столбце 2 или в столбце 3. Подскажите...

Первый элемент в столбце датафрейма *Pandas
Добрый день. У меня есть датафрейм OnD Pax 8743 SVO-LED 50005 3520 LED-SVO 45816 7321 AER-SVO 31542 ...

Датафрейм с суммой данных из другого датафрейма
Коллеги, добрый день! Возникла небольшая проблемка. Суть задачи: есть два датафрейма, в один из них помещаются уникальные данные из...

5
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
22.12.2022, 01:12
Ничего непонятно.
Цитата Сообщение от sof07 Посмотреть сообщение
Создать новый фрейм в котором 2 столбца, первый это значение которое нужно заменить, второй это значение на которое нужно заменить
Откуда берётся новое значение?
0
0 / 0 / 0
Регистрация: 23.04.2018
Сообщений: 44
22.12.2022, 09:03  [ТС]
Red white socks, Первая миниатюра - столбец из фрейма в котором надо заменить значения. Вторая миниатюра - фрейм из которого нужно взять значения. В столбце "Тариф", второй миниатюры - значения которые сравниваются со значениями из первой миниатюры. Из столбца "Новое значение" Нужно подставить новое значение в первую миниатюру , в случае если значения в столбцах "Тариф" первой и второй миниатюры совпадают.
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
22.12.2022, 11:07
Python
1
2
3
4
5
6
7
df1 = pd.DataFrame([['1 тариф', 'ТАРИФ 1'], ['2 тариф', 'ТАРИФ 2'], ['3 тариф','ТАРИФ 3']], 
                   columns =['tarif', 'tarif_new'])
df2 = pd.DataFrame({'tarif':['2 тариф', '1 тариф', '4 тариф']})
print(df2, end ='\n\n')
dct = df1.set_index('tarif').T.to_dict('list')
df2.tarif = df2.apply(lambda x: (dct.get(x.tarif) or [x.tarif])[0], axis=1)
print(df2)
Code
1
2
3
4
5
6
7
8
9
     tarif
0  2 тариф
1  1 тариф
2  4 тариф
 
     tarif
0  ТАРИФ 2
1  ТАРИФ 1
2  4 тариф
Но лучше merge использовать.
Python
1
df2.tarif = df2.merge(df1, how = 'left', left_on='tarif', right_on='tarif').tarif_new.fillna(df2.tarif)
Единственная тонкость - значения в df1.tarif должны быть уникальны. Если же не уникальны, то мёрджить надо df1.groupby
0
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
22.12.2022, 11:25
Для обновления тарифов

Python
1
2
3
4
5
6
7
8
9
10
import pandas as pd
 
df_1 = pd.DataFrame({'A': ['Тариф 1', 'Тариф 2', 'Тариф 3', 'Тариф 4'], 'B' : [900, 500, 1000, 100]})
df_2 = pd.DataFrame({'A': ['Тариф 1', 'Тариф 2', 'Тариф 3', 'Тариф 4'], 'B' : [90, 50, 100, 10]})
 
 
df = df_1.join(df_2,lsuffix='_1', rsuffix='_2', how='outer')
print(df)
df.loc[(df['B_1']!= df['B_2'])), 'B_1'] = df['B_2']
print(df)
0
0 / 0 / 0
Регистрация: 23.04.2018
Сообщений: 44
22.12.2022, 23:39  [ТС]
Red white socks, volkomorov, короче ничего не понял в коде, сделал следующим образомЖ
Python
1
2
3
4
5
6
7
8
xl = pd.ExcelFile(file_name)
df_replace = xl.parse('Замена значений')
list_1 = list(df_replace['Тариф'])
list_2 = list(df_replace['Новое значение'])
 
df['Тариф'] = df['Тариф'].replace(
    to_replace = list_1, 
    value = list_2)
Вроде работает, спасибо за помощь))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2022, 23:39
Помогаю со студенческими работами здесь

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

Срез данных датафрейма
Хочу рассчитать коэффициента Альфа Кронбаха для пула данных. def CronbachAlpha(itemscores): itemscores =...

Pandas сортировка датафрейма
Доброго времени суток! Помогите пожалуйста чайнику! Есть у меня, скажем, табличка с фруктами и их количеством. И список фруктов с...

Преобразование признака и датафрейма
Коллеги, здравствуйте! Подскажите пожалуйста по двум вопросам. 1. Имеется категориальный признак, который насчитывает 25...

Pandas индекс датафрейма
Добрый день! Я в питоне и пандах 0. Помогите, пожалуйста, если не сложно! mydf=pd.DataFrame({'data': , }, index=) ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru