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

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

21.12.2022, 23:43. Показов 4612. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru