使用python 1将数据集中user、ad、click三张表组合形成一张表根据userid、ad_id进行组合形成user_ad表 2对缺失值进行处理、对用户数据性别和年龄层字段中为空值的记录删去
- 将数据集中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 |
- 对缺失值进行处理、对用户数据性别和年龄层字段中为空值的记录删去
假设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 |
原文地址: https://www.cveoy.top/t/topic/FQE 著作权归作者所有。请勿转载和采集!