AI 自动获客系统中数据清洗与整理功能的示例代码,涵盖了处理缺失值、去除重复数据、处理异常值和格式化数据等常见的数据清洗操作。假设数据以 CSV 文件形式存储,使用 pandas 库来完成这些任务。ai获客系统搭建、ai获客系统源码
代码说明
从网页收集数据:
collect_web_data 函数使用 requests 库向指定 URL 发送 HTTP 请求获取网页内容,然后使用 BeautifulSoup 库解析 HTML 内容,提取所有段落文本作为数据。
从社交媒体收集数据:
collect_social_media_data 函数模拟了从社交媒体 API 获取数据的过程,返回一个包含模拟用户帖子信息的列表。在实际应用中,需要根据具体社交媒体平台的 API 文档进行开发,通常涉及到认证、请求参数设置等步骤。
从文件收集数据:
collect_file_data 函数可以处理 JSON 和 CSV 文件。对于 JSON 文件,使用 json.load 解析;对于 CSV 文件,使用 csv.reader 逐行读取。
整合多渠道数据:
integrate_multi_channel_data 函数调用上述三个数据收集函数,将不同渠道的数据整合到一个字典中,以渠道名称作为键,对应的数据列表作为值。
import pandas as pd
import numpy as np
def data_cleaning(file_path):
try:
# 读取 CSV 文件
df = pd.read_csv(file_path)
# 1. 处理缺失值
# 查看各列的缺失值数量
missing_values = df.isnull().sum()
print("各列缺失值数量:")
print(missing_values)
# 对于数值型列,用均值填充缺失值
numerical_columns = df.select_dtypes(include=[np.number]).columns
for col in numerical_columns:
df[col].fillna(df[col].mean(), inplace=True)
# 对于非数值型列,用最频繁的值填充缺失值
categorical_columns = df.select_dtypes(include=['object']).columns
for col in categorical_columns:
df[col].fillna(df[col].mode()[0], inplace=True)
# 2. 去除重复数据
duplicates = df.duplicated()
df = df[~duplicates]
# 3. 处理异常值
# 这里简单假设数值型列中大于 3 倍标准差的值为异常值,用均值替换
for col in numerical_columns:
mean = df[col].mean()
std = df[col].std()
df[col] = np.where((df[col] - mean).abs() > 3 * std, mean, df[col])
# 4. 格式化数据
# 假设存在日期列,将其转换为日期格式
date_columns = [col for col in df.columns if 'date' in col.lower()]
for col in date_columns:
df[col] = pd.to_datetime(df[col])
return df
except FileNotFoundError:
print(f"文件 {file_path} 未找到。")
except Exception as e:
print(f"数据清洗过程中发生未知错误: {e}")
return None
if __name__ == "__main__":
file_path = 'customer_data.csv' # 替换为实际的 CSV 文件路径
cleaned_df = data_cleaning(file_path)
if cleaned_df is not None:
print("清洗后的数据:")
print(cleaned_df.to_csv(sep='\t', na_rep='nan'))
# 保存清洗后的数据到新文件
cleaned_df.to_csv('cleaned_customer_data.csv', index=False)