1. 将数据集中user、ad、click三张表组合形成一张表,根据userid、ad_id进行组合形成user_ad表

假设三张表的数据如下:

user表:

| userid | gender | age | | ------ | ------ | ------ | | 1 | 'M' | '18-24' | | 2 | 'F' | '25-34' | | 3 | 'M' | '35-44' | | 4 | 'F' | '45-54' |

ad表:

| ad_id | ad_title | | ----- | -------- | | 101 | 'Ad A' | | 102 | 'Ad B' | | 103 | 'Ad C' | | 104 | 'Ad D' |

click表:

| userid | ad_id | click | | ------ | ----- | ----- | | 1 | 101 | 1 | | 1 | 102 | 0 | | 2 | 103 | 1 | | 3 | 104 | 1 | | 4 | 101 | 0 |

可以使用pandas库中的merge函数将三张表组合成一张表:

import pandas as pd

# 读取数据
user = pd.read_csv('user.csv')
ad = pd.read_csv('ad.csv')
click = pd.read_csv('click.csv')

# 将user、ad、click三张表组合成一张表
user_ad = pd.merge(user, click, on='userid')
user_ad = pd.merge(user_ad, ad, on='ad_id')

# 列出结果
print(user_ad)

输出结果:

| userid | gender | age | ad_id | click | ad_title | | ------ | ------ | ------ | ----- | ----- | -------- | | 1 | 'M' | '18-24' | 101 | 1 | 'Ad A' | | 1 | 'M' | '18-24' | 102 | 0 | 'Ad B' | | 2 | 'F' | '25-34' | 103 | 1 | 'Ad C' | | 3 | 'M' | '35-44' | 104 | 1 | 'Ad D' | | 4 | 'F' | '45-54' | 101 | 0 | 'Ad A' |

  1. 对缺失值进行处理、对用户数据性别和年龄层字段中为空值的记录删去

假设user_ad表中有一些记录的gender和age字段为空,需要对其进行处理。

可以使用pandas库中的fillna函数将缺失值填充为指定的值(如0):

# 将缺失值填充为0
user_ad.fillna(0, inplace=True)

# 列出结果
print(user_ad)

输出结果:

| userid | gender | age | ad_id | click | ad_title | | ------ | ------ | ------ | ----- | ----- | -------- | | 1 | 'M' | '18-24' | 101 | 1 | 'Ad A' | | 1 | 'M' | '18-24' | 102 | 0 | 'Ad B' | | 2 | 'F' | '25-34' | 103 | 1 | 'Ad C' | | 3 | 'M' | '35-44' | 104 | 1 | 'Ad D' | | 4 | 'F' | '45-54' | 101 | 0 | 'Ad A' |

如果需要将空值的记录删去,可以使用pandas库中的dropna函数:

# 删去gender或age为空的记录
user_ad.dropna(subset=['gender', 'age'], inplace=True)

# 列出结果
print(user_ad)

输出结果:

| userid | gender | age | ad_id | click | ad_title | | ------ | ------ | ------ | ----- | ----- | -------- | | 1 | 'M' | '18-24' | 101 | 1 | 'Ad A' | | 1 | 'M' | '18-24' | 102 | 0 | 'Ad B' | | 2 | 'F' | '25-34' | 103 | 1 | 'Ad C' | | 3 | 'M' | '35-44' | 104 | 1 | 'Ad D' | | 4 | 'F' | '45-54' | 101 | 0 | 'Ad A' |

Python数据处理:合并、缺失值处理与数据清洗

原文地址: https://www.cveoy.top/t/topic/lVZi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录