|
|
|
|
"""
|
|
|
|
|
pg_request包,主要用于处理PostgreSQL数据库数据。
|
|
|
|
|
|
|
|
|
|
功能:
|
|
|
|
|
- 在运行主函数时,如果必要,将会创建一个存放输出数据的 'data' 文件夹。
|
|
|
|
|
- 连接到 PostgreSQL 数据库并从指定数据表中提取数据。
|
|
|
|
|
- 合并多个表中的数据。
|
|
|
|
|
- 对数据进行标准化处理。
|
|
|
|
|
- 保存处理后的数据到 CSV 文件。
|
|
|
|
|
|
|
|
|
|
模块:
|
|
|
|
|
- config: 定义了数据的存取参数,如数据库连接参数和目标数据表名。
|
|
|
|
|
- parse: 包含了连接数据库、数据处理和数据存储等功能的函数。
|
|
|
|
|
|
|
|
|
|
函数:
|
|
|
|
|
- check_and_create_folder(folder_path): 检查并创建数据文件夹,在主函数运行时调用。
|
|
|
|
|
- run(): 作为整个数据处理流程的主函数,当被调用时,将会执行数据提取、数据处理和数据存储等操作。
|
|
|
|
|
|
|
|
|
|
使用示例:
|
|
|
|
|
```
|
|
|
|
|
from pg_request import run
|
|
|
|
|
run()
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
注意事项:
|
|
|
|
|
在使用这个包时,你需要首先在config.py中设置好数据库连接参数和目标数据表,然后才能正常使用run函数。在你自己的项目中,你也可以根据需要调用parse.py中的各个函数。
|
|
|
|
|
"""
|
|
|
|
|
import os
|
|
|
|
|
|
|
|
|
|
from .config import DB_PARAMS, TABLES
|
|
|
|
|
from .parse import connect_to_pg, merge_dfs, normalize_df, save_as_csv
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def check_and_create_folder(folder_path: str):
|
|
|
|
|
"""
|
|
|
|
|
检查指定的文件夹是否存在,如果不存在则创建该文件夹。
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
folder_path (str): 需要检查和创建的文件夹路径。
|
|
|
|
|
"""
|
|
|
|
|
if not os.path.exists(folder_path):
|
|
|
|
|
os.makedirs(folder_path)
|
|
|
|
|
print(f"文件夹 {folder_path} 已创建。")
|
|
|
|
|
else:
|
|
|
|
|
print(f"文件夹 {folder_path} 已存在。")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def run():
|
|
|
|
|
"""
|
|
|
|
|
运行整个数据处理流程,步骤如下:
|
|
|
|
|
|
|
|
|
|
1. 检查并创建存放输出数据的data文件夹。
|
|
|
|
|
2. 连接到PostgreSQL数据库并获取指定数据表的数据。
|
|
|
|
|
3. 合并多个数据表中的数据。
|
|
|
|
|
4. 使用最小最大规范化方法对数据进行规范化处理。
|
|
|
|
|
5. 将处理后的数据保存到CSV文件中。
|
|
|
|
|
"""
|
|
|
|
|
# 检查存放输出数据的文件夹是否存在,如果不存在则创建
|
|
|
|
|
check_and_create_folder('data')
|
|
|
|
|
|
|
|
|
|
# 连接数据库,获取数据表数据
|
|
|
|
|
raw_data = connect_to_pg(DB_PARAMS, TABLES)
|
|
|
|
|
|
|
|
|
|
# 合并获取的数据表
|
|
|
|
|
merged_data = merge_dfs(raw_data)
|
|
|
|
|
|
|
|
|
|
# 对合并后的数据进行最小最大标准化
|
|
|
|
|
normalized_data = normalize_df(merged_data)
|
|
|
|
|
|
|
|
|
|
# 保存数据到 CSV 文件
|
|
|
|
|
save_as_csv(normalized_data, 'data/normalized_df.csv')
|
|
|
|
|
|
|
|
|
|
# 打印完成信息
|
|
|
|
|
print('{:*^30}'.format('PostgreSQL数据读取完成'))
|