Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811

Объединение dataframe в цикле

18.02.2020, 10:55. Показов 8601. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Мне нужно причитать по очереди несколько файлов и по условию объединять их с первым df. Условия: столбец с первого '№' == столбцу с тех что считываем 'Статус'
Написал такой цикл:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#читаем первый файл
oeds_xl = pd.read_excel(put_k_oebs, skiprows = 26, usecols = "A:M, S, W, AB, AD, AE, AO")
# создаем копию
oebs_gde = oeds_xl.copy(deep=True)
files = os.listdir(put_k_JDE)# получаем список файлов в папке
for nevFiles in files:
    put = put_k_JDE + nevFiles
    jde_xl = pd.read_excel(put, skiprows = 4, usecols = 'a:b, f:h, m, t, x:z, ag, ah')# сохраняем очередной файл 
    # объединение по фильтру JD
    oebs_gde = pd.merge(left=oebs_gde, right=jde_xl, left_on='№', right_on='Статус')
    jde_xl = jde_xl.drop(jde_xl.index)# очищаем датафрейм
#запись файлов
jde_xl.to_excel('jde_xl.xlsx')
oebs_gde.to_excel('oebs_gde.xlsx')
oeds_xl.to_excel('oeds_xl.xlsx')
Но объединение происходит не корректно мало строчек и столбцов получается не 31 в объеденном а 52....
Что то не так как задумано )) где может быть ошибка?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.02.2020, 10:55
Ответы с готовыми решениями:

Объединение 2-х DataFrame по условию
Добрый день! есть 2 DF надо объединить. import pandas as pd df1 = pd.DataFrame({'x': , 'y': }) df2 = pd.DataFrame({'y1': , 'z':...

Объединение dataframe в pandas
Всем привет! Есть два dataframe pandas с идентичной структурой (ФИО, ДР), необходимо из второго dataframe обновить первый dataframe.Если...

Объединение dataframe с одинаковыми столбцами
Добрый день, форумчане. Пытаюсь объединить dataframes, в которых встречаются одинаковые колонки. В результате новый датафрейм имеет...

5
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
18.02.2020, 13:07
У merge есть параметр "how=", который может принимать значения left, right, inner. По умолчанию стоит inner
0
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
18.02.2020, 14:08  [ТС]
Получается, что при первом объединении таблица создается правильная, а при чтении второго файла его столбцы не дописываются а появляются с права.... как это побороть?
0
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
18.02.2020, 14:57
Напишите пример с данным и что должно быть в итоге
0
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
18.02.2020, 16:09  [ТС]
Например есть:
Python
1
df1 = pd.DataFrame({'x': [1, 2, 3], 'y': ['a', 'be', 'ce']})
и
Python
1
df2 = pd.DataFrame({'y1': ['be', 'c', 'd'], 'z': [4, 5, 6]})
который из за большого объема разбит на несколько файлов которые считываются по очереди в цикле т.е. df2, df3 и тд...
В итоге должна получится таблица в которой из df1 будут все столбцы, а из df2.3.4... и тд при условии, что значения df1 'y' = df2... 'y1' то дописываются с права столбцы 'y1' и 'z'
undexxyy1z
12bebe4
Но если df2 повторить 2 раза то y1 и z дописываются с права 2 раза....
undexxyy1zy1'z'
12bebe4be5
0
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
18.02.2020, 16:52
Переименуйте Столбец Y1 в Y, что бы он имел одинаковое имя с df1, тогда получится


Python
1
2
3
4
5
6
7
8
import pandas as pd
 
df1 = pd.DataFrame({'x': [1, 2, 3], 'y': ['a', 'be', 'ce']})
df2 = pd.DataFrame({'y': ['be', 'c', 'd'], 'z': [4, 5, 6]})
df3 = pd.DataFrame({'y': ['c', 'be', 'ce'], 'z': [8, 10, 20]})
merged_inner = pd.merge(left=df1, right=df2, left_on='y', right_on='y', how='left', )
merged_inner = pd.merge(left=merged_inner, right=df3, left_on='y', right_on='y', how='left')
print(merged_inner)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2020, 16:52
Помогаю со студенческими работами здесь

Новый Dataframe с информацией из старого Dataframe
У меня есть такой Dataframe. Мне нужно посчитать количество каждого значения из столбца Message для каждого номера из...

Pandas. Изменение значений Dataframe исходя из другого Dataframe
Добрый день. Прошу подсказать с реализаций следующего алгоритма: я загружаю из файла примерно следующий Dataframe(db): ...

Объединение трёх матриц в цикле
Имеется три матрицы x,y,z X = X11 X12 X13 X21 X22 X23 X31 X32 X33 Y= Y11 Y12 Y13 Y21 ...

Объединение решения двух систем диф.уравнений в цикле
Здравствуйте! Помогите пожалуйста объединить вычисления в цикл. Решаются по очереди две системы диф.уравнений. Начальные условия для каждой...

и еще немного про объединение ячеек (или цикл в цикле 5 раз?)
Доброго времени. Коротко предыстория: Не найдя ни одного нормального конвертера ПДФ в ексель, решил решить проблему конвертации...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru