赞
踩
id
, name
, email
等字段:- CREATE TABLE target_table (
- id SERIAL PRIMARY KEY,
- name VARCHAR(100),
- email VARCHAR(100)
- );
假设我们将CSV文件导入一个名为temp_table
的表中,表结构与CSV文件一致。
假设需要清洗的部分包括去除空白的name字段和验证email格式。
- -- 使用CTE清洗数据并插入到目标表
- INSERT INTO target_table (name, email)
- SELECT name, email
- FROM temp_table
- WHERE name IS NOT NULL
- AND email ~* '^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$';
SELECT * FROM target_table;
DROP TABLE temp_table;
如果需要更复杂的数据清洗,可以使用Python和Pandas库来处理CSV文件,然后将数据加载到PostgreSQL。
- import pandas as pd
- from sqlalchemy import create_engine
-
- # 读取CSV文件
- df = pd.read_csv('path_to_csv_file')
-
- # 数据清洗示例
- df = df.dropna(subset=['name']) # 移除name为空的列
- df = df[df['email'].str.match(r'^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$', case=False, na=False)] # 验证email格式
-
- # 连接到PostgreSQL
- engine = create_engine('postgresql://username:password@localhost:5432/database_name')
-
- # 将数据写入PostgreSQL
- df.to_sql('target_table', engine, if_exists='append', index=False)
上述步骤详述了如何从CSV文件提取数据,进行数据清洗,并将其加载到PostgreSQL数据库中。根据具体需求,选择适合的工具和方法(如直接使用DBeaver或结合Python处理数据)可以帮助你高效完成任务。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。