站长信息
jeffery.xu
jeffery.xu

软件工程师

欢迎访问我的个人笔记网站!我是一名热爱技术的开发者,专注于Web开发和技术分享。

811495111@qq.com
18521510875
筛选

个人笔记

1-1-4
人工智能学习

代码:

import pandas

# 1. 数据采集

# 从本地文件中读取数据  2

data = pandas.read_csv('user_behavior_data.csv')

print("数据采集完成,已加载到DataFrame")

# 打印数据的前5条记录  2

print(data.head())

# 2. 数据清洗与预处理

# 处理缺失值  2

data = data.dropna()

# 数据类型转换

data['Age'] = data['Age'].astype(int)  # Age数据类型转换 2

data['PurchaseAmount'] = data['PurchaseAmount'].astype(float)  # PurchaseAmount数据类型转换  2

data['ReviewScore'] = data['ReviewScore'].astype(int)  # ReviewScore数据类型转换 2

# 处理异常值  2

data = data[(data['Age'].between(18, 70)) &(data['PurchaseAmount'] > 0) &(data['ReviewScore'].between(1, 5))]

# 数据标准化

data['PurchaseAmount']= (data['PurchaseAmount'] - data['PurchaseAmount'].mean()) / data['PurchaseAmount'].std()  # PurchaseAmount数据标准化 2

data['ReviewScore'] = (data['ReviewScore'] - data['ReviewScore'].mean()) / data['ReviewScore'].std()  # ReviewScore数据标准化 2

# 保存清洗后的数据  1

data.to_csv('cleaned_user_behavior_data.csv', index=False)

print("数据清洗完成,已保存为 'cleaned_user_behavior_data.csv'")

# 3. 数据统计

# 统计每个购买类别的用户数

purchase_category_counts = data['PurchaseCategory'].value_counts()

print("每个购买类别的用户数:\n", purchase_category_counts)

# 统计不同性别的平均购买金额
gender_purchase_amount_mean = data.groupby('Gender')['PurchaseAmount'].mean()

print("不同性别的平均购买金额:\n", gender_purchase_amount_mean)

# 统计不同年龄段的用户数

bins = [18, 25, 35, 45, 55, 65, 70]

labels = ['18-25', '26-35', '36-45', '46-55', '56-65', '65+']

data['AgeGroup'] = pandas.cut(data['Age'], bins=bins, labels=labels, right=False)

age_group_counts = data['AgeGroup'].value_counts().sort_index()

print("不同年龄段的用户数:\n", age_group_counts)

1-1-3
人工智能学习

代码:

import pandas as pd

# 读取数据集

data = pd.read_csv('credit_data.csv')

# 1. 数据完整性审核

missing_values = data.isnull().sum()  # 数据缺失值统计 2

duplicate_values = data.duplicated().sum()  # 数据重复值统计 2

# 输出结果

print("缺失值统计:")

print(missing_values)

print("重复值统计:")

print(duplicate_values)

 

# 2. 数据合理性审核

data['is_age_valid'] = data['Age'].between(18, 70)  # Age数据的合理性审核 2

data['is_income_valid'] = data['Income'] > 2000  # Income数据的合理性审核 2

data['is_loan_amount_valid'] = data['LoanAmount'] < (data['Income'] * 5) 

# LoanAmount数据的合理性审核 2

data['is_credit_score_valid'] = data['CreditScore'].between(300, 850) 

# CreditScore数据的合理性审核 2

# 合理性检查结果

validity_checks=data[['is_age_valid', 'is_income_valid', 'is_loan_amount_valid', 'is_credit_score_valid']].all(axis=1)

data['is_valid'] = validity_checks

# 输出结果

print("数据合理性检查:")

print(data[['is_age_valid', 'is_income_valid', 'is_loan_amount_valid', 'is_credit_score_valid','is_valid']].describe())

# 3. 数据清洗和异常值处理

# 标记不合理数据

invalid_rows = data[~data['is_valid']]

# 删除不合理数据行

cleaned_data = data[data['is_valid']]

# 删除标记列

cleaned_data = cleaned_data.drop(columns=['is_age_valid', 'is_income_valid', 'is_loan_amount_valid', 'is_credit_score_valid', 'is_valid'])

# 保存清洗后的数据

cleaned_data.to_csv('cleaned_credit_data.csv', index=False)

print("数据清洗完成,已保存为 'cleaned_credit_data.csv'")

1-1-2
人工智能学习

代码:

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

# 读取数据集

data = pd.read_csv('sensor_data.csv')

# 1. 传感器数据统计

# 对传感器类型进行分组,并计算每个组的数据数量和平均值

sensor_stats = data.groupby('SensorType')['Value'].agg(['count', 'mean'])

# 输出结果

print("传感器数据数量和平均值:")

print(sensor_stats)

 # 2. 按位置统计温度和湿度数据

# 筛选出温度和湿度数据,然后按位置和传感器类型分组,计算每个组的平均值

location_stats=data[data['SensorType'].isin(['Temperature','Humidity'])].groupby(['Location', 'SensorType'])[ 'Value'].mean().unstack()

# 输出结果

print("每个位置的温度和湿度数据平均值:")

 print(location_stats)

 # 3. 数据清洗和异常值处理

# 标记异常值

data['is_abnormal'] = np.where( ((data['SensorType'] == 'Temperature') & ((data['Value'] < -10) | (data['Value'] > 50))) | ((data['SensorType'] == 'Humidity') & ((data['Value'] < 0) | (data['Value'] > 100))), True, False)

 # 输出异常值数量

print("异常值数量:", data['is_abnormal'].sum())

# 填补缺失值

# 使用前向填充和后向填充的方法填补缺失值

data['Value'].fillna(method='ffill', inplace=True)

data['Value'].fillna(method='bfill', inplace=True)

# 保存清洗后的数据

# 删除用于标记异常值的列,并将清洗后的数据保存到新的CSV文件中

cleaned_data = data.drop(columns=['is_abnormal'])

cleaned_data.to_csv('cleaned_sensor_data.csv', index=False)

print("数据清洗完成,已保存为 'cleaned_sensor_data.csv'")