#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
:Description: 记得些注释呀
:Owner: xiaofeng_zhao
:Create time: 2022/1/18
"""
import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder
df = pd.read_csv('./titanic/data.txt',
names=['id', 'uid', 'age', 'gender', 'item_id', 'behavior_type', 'item_category', 'date', 'province'])
# print df #[3182261 rows x 9 columns]
# behavior_type: 1.浏览 2.收藏 3.加购物车 4.购买
# 7.统计各省的前十热门关注产品(浏览+收藏+添加购物车+购买总量最多前10的产品)
# 8.统计各省的前十热门购买产品(销售最多前10的产品)
# 9.统计各省销售最好的产品类别前10(销售最多前10的产品类别)
# 10.统计各省男女用户数量(gender 0:男 1:女 2:未知)
# 显示全部的列数
# pd.set_option('display.max_columns',None)
# 查看数据的详情信息
# print df.describe()
# 查看数据的缺失值
# 方法一:
# print df.info()
# 方法二:
# print df.isnull().sum() #可以看出,此时并没有空值
# 重复值的观察
# print df[df.duplicated()] #[87 rows x 9 columns]
# 对重复值进行处理
df1 = df.drop_duplicates()
# 将清理之后的数据保存至新的csv中
# df1.to_csv('./titanic/clear_bise_data.csv',index=0)
# 选取清理后的数据进行分析
df2 = pd.read_csv('./titanic/clear_bise_data.csv')
# 对数据年龄进行分箱
# 连续变量Age划分为(0,20] (20,40] (40,60] (60,80] 4个年龄段,并分别用类别变量1234表示
# df2['AgeBank'] = pd.cut(df2['age'],[0,20,40,60,80],labels=[1,2,3,4])
# df2.to_csv('./titanic/bise_age_bank.csv',index=0)
# 查看文本类变量名及名称
# 方法一:
# print df2['province'].value_counts() #共有34个省份
# 宁夏 福建
# 方法二:
# print df2['province'].nunique() 34
# 对类别文本文本进行处理
# df2['province_num'] = df['province'].replace(['宁夏', '福建', '湖北', '内蒙古', '西藏', '北京市', '吉林', '陕西', '上海市', '安徽'
# , '青海', '辽宁', '江西', '台湾', '浙江', '云南', '山西', '贵州', '澳门', '新疆'
# , '甘肃', '香港', '四川', '河北', '山东', '湖南', '广西', '天津市', '河南', '重庆市', '黑龙江',
# '广东', '江苏', '海南'],
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
# 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34])
for item in ['province']:
lbl = LabelEncoder()
lbl_dict = dict(zip(df2[item].unique(),range(df2[item].nunique())))
df2[item + "_labelEncode"] = df2[item].map(lbl_dict)
df2[item + "_labelEncode"] = lbl.fit_transform(df2[item].astype(str))
# 将类别文本进行one_hot编码
# one hot编码是将类别变量转换为机器学习算法易于利用的一种形式的过程。
for item in ['province']:
x = pd.get_dummies(df2[item],prefix=item)
df2 = pd.concat([df2,x],axis=1)
df2.to_csv('./titanic/bise_one_hot.csv',index=0)
【数据分析】lw
最新推荐文章于 2023-08-22 17:01:16 发布