【发布时间】:2022-01-03 18:40:24
【问题描述】:
我正在使用 Python 中的 pyodbc 访问 Microsoft SQL Server 数据库,并且我有许多关于州和年份的表。我正在尝试使用它们创建一个 pandas.DataFrame,但我不知道如何创建一个函数并仍然为这些州和年份中的每一个创建指定 YEAR 和 STATE 的列(我以 NY2000 为例)。我应该如何构建该功能或“如果循环”?抱歉,不清楚,这是我在这里的第一篇文章:/
tables = tuple([NY2000DX,NY2001DX,NY2002DX,AL2000DX,AL2001DX,AL2002DX,MA2000DX,MA2001DX,MA2002DX])
jobs = tuple([55,120])
query = """ SELECT
ID,
Job_ID,
FROM {}
WHERE Job_ID IN {}
""".format(tables,jobs)
NY2000 = pd.read_sql(query, server)
NY2000["State"] = NY
NY2000["Year"] = 2000
我想要的结果将是一个 DF,其中包含来自所有表的信息,其中列指定了 State 和 Year。喜欢:
| Year | State | ID | Job_ID |
|---|---|---|---|
| 2000 | NY | 13 | 55 |
| 2001 | NY | 20 | 55 |
| 2002 | NY | 25 | 55 |
| 2000 | AL | 15 | 120 |
| 2001 | AL | 60 | 120 |
| 2002 | AL | 45 | 120 |
| ------------ | ------- | -------- | ---------- |
感谢您的支持:)
【问题讨论】:
-
除此之外,您不应该在关系数据库中存储许多前缀和后缀表。所有这些表都应该标准化为一个带有 state 和 year 指标的 single 表。如果可能,请考虑数据库设计。
-
SQL 数据库 是指 SQL Server 数据库吗?如果是这样,请标记您的 DBMS。仅供参考:包括 Microsoft 在内的任何公司都不拥有 SQL 名称。
标签: python sql sql-server pandas pyodbc