Python 3.11 | Как заставить Python собирать значения определенной ячейки в читаемом файле Excel, ЕСЛИ строка этой ячейки имеет определенное значение в другом столбце.

Вопрос или проблема

Я совсем новичок в этой части кодирования, связанной со сбором данных, просто пытаюсь немного автоматизировать процесс.

В настоящее время у меня есть этот excel файл, который Python читает нормально, однако, я пытаюсь выяснить, как извлечь определенные части листа.

Документ excel отформатирован так, что при запуске в Python с помощью Pandas

   Chara. ID    Name  Room
0          1     Jon     2
1          2    Mary     4
2          3  George     2
3          4   Henry     1
4          5    Jane     1
5          6  George     4
6          7  Thomas     3
7          8  Hannah     3
8          9     Luz     1
9         10    Ivan     2

С моим текущим кодом как

import pandas as pd

dataframe1 = pd.read_excel('TestExcel.xlsx')


print(dataframe1)

То, что я стремлюсь сделать, — это найти все Chara. IDs для каждой комнаты (например, список ID для комнаты 1, комнаты 2 и так далее). Затем использовать эти данные, чтобы скопировать и отправить заранее подготовленное сообщение списку ID для того места, где находится комната (например, “Если Вы получаете это сообщение, Вам следует обратиться в комнату 1”).

Любая помощь или руководство очень ценятся. Благодарю за ваше время! -Fen

Вы можете использовать groupby для этого:

groups = dataframe1.groupby("room")

for room, group in groups:
    print(f"Room: {room}")
    ids = group["Chara. ID"].values
    print(f"IDs: {ids}")

Обратите внимание, что group само по себе является DataFrame, и вы можете выполнять любые операции с DataFrame, которые захотите.

Ответ или решение

Задача, поставленная вами, требует извлечения данных из Excel-файла с использованием языка программирования Python и библиотеки Pandas. Вы хотите собрать значения из определённого столбца ("Chara. ID") при условии, что в другой колонке ("Room") содержится определённое значение. Давайте разберёмся, как можно реализовать это с помощью Pandas.

Теория:

Библиотека Pandas предоставляет мощный инструментарий для работы с табличными данными. Одной из ключевых её возможностей является группировка данных с использованием метода groupby(). Это позволяет вам разделить данные на группы по значениям в одной или нескольких колонках и затем применять различные операции к каждой группе.

Пример:

У вас есть таблица, прочитанная из Excel, в которой представлены данные о персонажах, их идентификационные номера и комнаты. Задача заключается в том, чтобы для каждой комнаты собрать список идентификационных номеров персонажей, находящихся в этой комнате.

Сначала загрузим данные и проведём их группировку:

import pandas as pd

# Чтение данных из Excel-файла
dataframe1 = pd.read_excel('TestExcel.xlsx')

# Группируем данные по колонке "Room"
groups = dataframe1.groupby('Room')

# Проходим по каждой полученной группе
for room, group in groups:
    print(f"Комната: {room}")
    ids = group["Chara. ID"].values
    # Выводим идентификационные номера для данной комнаты
    print(f"Идентификаторы: {ids}")

Применение:

Вышеуказанный код позволяет решить вашу задачу и собрать идентификационные номера персонажей для каждой комнаты. После этого вы можете дополнительно использовать список идентификационных номеров для автоматической отправки сообщений, как требовалось. Представленный подход даёт возможность гибко обрабатывать данные, в том числе выполнять операции фильтрации и сортировки, если возникнет такая необходимость.

Помимо основной задачи, метод группировки в Pandas также даёт возможность комбинирования с различными агрегатами и функциями для получения более сложной аналитики, если в будущем задача изменится или усложнится.

Если у вас появятся дополнительные вопросы или потребуется внедрение этого решения в более крупный проект, я рекомендую изучить методы Pandas более подробно, поскольку это значительно расширит ваши возможности в обработке данных.

Оцените материал
Добавить комментарий

Капча загружается...