什么是 Python Query?
在 Python 编程中,“query”通常指对数据进行筛选、提取或检索的操作。 无论你是在处理 pandas DataFrame、连接 SQL 数据库, 还是调用 RESTful API,都离不开“查询”这一核心操作。
1. 使用 Pandas 的 .query() 方法
pandas.DataFrame.query() 是一种使用字符串表达式筛选数据的便捷方式。
import pandas as pd
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'city': ['Beijing', 'Shanghai', 'Guangzhou']
})
# 查询年龄大于 28 的记录
result = df.query('age > 28')
print(result)
输出结果将只包含 Bob 和 Charlie 的信息。
2. 数据库查询(SQLite 示例)
使用 Python 内置的 sqlite3 模块执行 SQL 查询:
import sqlite3
conn = sqlite3.connect(':memory:')
cursor = conn.cursor()
cursor.execute('CREATE TABLE users (id INTEGER, name TEXT)')
cursor.execute("INSERT INTO users VALUES (1, 'Alice'), (2, 'Bob')")
# 执行查询
cursor.execute("SELECT * FROM users WHERE id = 1")
print(cursor.fetchone()) # (1, 'Alice')
conn.close()
3. 通过 API 发起查询请求
使用 requests 库向 Web API 发送查询参数:
import requests
# 查询 GitHub 用户信息
response = requests.get('https://api.github.com/users/octocat')
if response.status_code == 200:
user_data = response.json()
print(user_data['name']) # 输出用户名
注意:需先安装 requests:pip install requests
最佳实践建议
- 对用户输入的查询条件进行校验,防止注入攻击(尤其是数据库查询)。
- 在大型 DataFrame 上使用
.query()可能比布尔索引更快。 - 合理使用索引提升数据库查询性能。
- API 查询时注意速率限制和错误处理。