其他分享
首页 > 其他分享> > 数据分析实战-电商1

数据分析实战-电商1

作者:互联网

这是来自《和鲸社区的一个》数据分析实战项目

原始链接为某电子产品销售数据分析报告及RFM模型

自己写的,用来练手

编辑器使用Vscode
这一部分是对数据进行清洗,主要包括,提取时间,数据重复、缺失、异常
生成了清洗后的data_clean.csv

import pandas as pd

#显示所有列
pd.set_option('display.max_columns', None)
#显示所有行
pd.set_option('display.max_rows', None)

data = pd.read_csv(r'C:\Users\26053\Desktop\论文\Python\project_vscode\电子产品销售分析.csv', index_col=0)
#print(data.head())

#將event_time,數據類型為object,拆分成,日期,月份,小時,周天
#日期,格式為,年-月-日,類型為object
data['date'] = data['event_time'].apply(lambda x: x.split()[0])

#月份:,從日期中拆分月份,類型為object
data['month'] = data['date'].apply(lambda x: x.split('-')[1])

#小時,將event_time,拆分出小時,類型為object
data['hour'] = data['event_time'].apply(lambda x: x.split()[1].split(':')[0])

#周天,從日期中確認,周日為0,周六為6
#將日期,轉換數據類型,為時間
data['date'] = pd.to_datetime(data['date'])
data['weekday'] = data['date'].apply(lambda x: x.strftime('%w'))

#刪除event_time列
del data['event_time']

#***************
#到此為止,對於數據的時間操作已全部結束,下面對數據進行清洗
#***************

#查看數據的丟失,重複情況
#print(data.info())
#category_code:產品類別,缺失,自定義為‘R’
#brand:品牌,缺失,值較少,直接刪除
data['category_code'] = data['category_code'].fillna('R')
data = data[data.brand.notnull()]
#print(data.head())
#print(data.info())

#對重複數據進行處理,重複數據為,同筆訂單,購買了多個數量
#重複的是,每一行都完全與上一個重複
#print(data.duplicated().sum())

#數據聚合
df = data.groupby(['order_id', 'product_id']).size()
df.name = 'buy_cnt'
#print(df.head())

#新列,購買數量,buy_cnt
#数据合并,交集,Dataframe与Series
data = pd.merge(data, df, on=['order_id', 'product_id'], how='inner')
#print(data.info())
#print(data.duplicated().head())
#删除重复行,并重新索引,丢弃原来的索引
data = data.drop_duplicates().reset_index(drop=True)

#新列,购买总金额
data['price_cnt'] = data['buy_cnt'] * data['price']
#print(data.info())

#查看数据是否有异常
#统一数据类型
data.order_id = data.order_id.astype('object')
data.product_id = data.product_id.astype('object')
data.category_id = data.category_id.astype('object')
data.user_id = data.user_id.astype('object')

data.month = data.month.astype('int64')
data.hour = data.hour.astype('int64')
data.weekday = data.weekday.astype('int64')

#查看描述,各项参数,日期里面最小值错误
#print(data.describe(include='all'))
data = data[data.date > '19700101']
#print(data.date.min())

#*************
#到此数据清洗完毕,对数据进行保存
#*************

data.reset_index(drop=True, inplace=True)
#保存数据,不保留行索引index=0,此处保留了行索引
path = r'C:\Users\26053\Desktop\论文\Python\project_vscode\data_clean.csv'
data.to_csv(path)

标签:数据分析,实战,object,astype,數據,print,电商,data,id
来源: https://blog.csdn.net/qh_aichun/article/details/119916756