python - 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
仅获取带有数字的列A
和B
行B
(可以是自动过滤器):
[Sheet3]
A B
abc 123
abc 124
abc 125
bcd 234
bcd 235
bcd 236
提前致谢。
解决方案
大熊猫的解决方案
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))]
推荐阅读
- javascript - 为什么函数(不是函数对象)具有(原型)属性?
- php - 当我尝试在 phpMyAdmin 中执行 load.sql 时,它给了我一个错误
- c# - 检查 SQL Server 日期时间列字符串 C# 是否已过去 1 小时
- arrays - Swift - 通过几个比较对数组进行排序
- python - 如何在 ram 中创建目录并获取它的路径?
- java - 用逗号分割后如何分割连字符?
- java - 在 Eclipse/Cucumber/Java 中将多个页面对象文件串在一起
- sparql - 如何计算具有某些属性的项目
- php - 如何在php中创建具有模糊图像背景的图像
- javascript - 在特定屏幕宽度隐藏 JS 函数