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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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