доступ к данным Pandas по индексу ячейки Excel - PullRequest
0 голосов
/ 04 февраля 2020

Я импортировал электронную таблицу Excel в фрейм данных. Я sh получаю доступ к данным, как если бы это была ссылка на Excel: например, df.get ("A1") вместо df.iloc [0,0]. Хороший метод уже существует для доступа к данным в данных с помощью индексации Excel - что-то вроде моей воображаемой функции get выше?

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Вы можете написать простую функцию для преобразования из индекса Excel в числовой индекс:

import regex as re

def index_transform(excel_index):
    match = re.match(r"^([a-z]+)(\d+)$", excel_index.lower())
    if not match:
        raise ValueError("Invalid index")

    x_cell = -1
    for idx, char in enumerate(match.group(1)[::-1]):
        x_cell += (26 ** idx) * (ord(char) - 96)  # ord('a') == 97

    y_cell = int(match.group(2)) - 1

    return y_cell, x_cell

# Usage
df.iloc[*index_transform("A1")]  # The * unpacks the returned tuple

# Example outputs
>>> index_transform("A1")
(0, 0)
>>> index_transform("E1")
(0, 4)
>>> index_transform("A5")
(4, 0)
>>> index_transform("e5")
(4, 4)
>>> index_transform("AA27")
(26, 26)
>>> index_transform("coffee1337")
(1336, 42608414)
1 голос
/ 04 февраля 2020

Не Pandas, но xlswriter делает это: https://xlsxwriter.readthedocs.io/working_with_cell_notation.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...