You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.6 KiB

"""
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数据读取完成'))