首页 > 解决方案 > openpyxl 将查询添加到 excel 连接表

问题描述

有没有办法像“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仅获取带有数字的列ABB(可以是自动过滤器):

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

提前致谢。

标签: pythonexcelpandas

解决方案


大熊猫的解决方案

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))]

推荐阅读