openpyxl добавить запрос в таблицы соединений Excel - PullRequest
0 голосов
/ 21 октября 2019

Есть ли способ сделать запрос наподобие «PowerQuery», но использовать только OpenPyXl или любую другую библиотеку Python?

Рассмотрим, есть ли у меня данные на разных листах, которые я хотел бы объединить и отфильтровать согласнопо произвольным критериям, и я хотел бы, чтобы эта объединенная таблица соответствовала изменениям в исходных листах (т.е. копирование данных для выполнения слияния вручную не является хорошей идеей).

Простой глупый пример будет выглядеть так:

[Sheet1]
A    B    C
abc  123  Don't
abc  124  care
abc  125  column

[Sheet2]
A    B
bcd  234
bcd  235
no   see
bcd  236

Результат Sheet3, содержащий только столбцы A и B и строки с номерами из B (может быть автофильтром):

[Sheet3]
A    B
abc  123
abc  124
abc  125
bcd  234
bcd  235
bcd  236

Заранее спасибо.

1 Ответ

0 голосов
/ 21 октября 2019

Раствор в пандах

import pandas as pd

sheet_1 = pd.DataFrame({'A': ['abc', 'abc', 'abc'],
'B': [123, 124, 125],
'C': ["Don't", 'care', 'column']})

del sheet_1['C']

sheet_2 = pd.DataFrame({'A': ['bcd', 'bcd', 'no', 'bcd'],
'B': [234, 235, 'see', 236]})

sheet_3 = pd.concat([sheet_1, sheet_2])
sheet_3 = sheet_3[sheet_3.B.apply(lambda x: isinstance(x, int))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...