import os
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']#设置字体
一.清洗数据
#1.重复值,缺失值,格式调整
data= pd.read_csv('data_wuliu.csv',encoding='utf8')
#加载文件,规定编码格式
data.info()
#通过info()可以看出,包括10列数据,名字,数据量,格式等,可以得出:
<class 'pandas.core.frame.DataFrame'> RangeIndex: 1161 entries, 0 to 1160 Data columns (total 10 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 订单号 1159 non-null object 1 订单行 1161 non-null int64 2 销售时间 1161 non-null object 3 交货时间 1161 non-null object 4 货品交货状况 1159 non-null object 5 货品 1161 non-null object 6 货品用户反馈 1161 non-null object 7 销售区域 1161 non-null object 8 数量 1157 non-null float64 9 销售金额 1161 non-null object dtypes: float64(1), int64(1), object(8) memory usage: 90.8+ KB
#1.订单号,货品交货量,数量:存在缺失值,但是缺失量不大,可以删除
#2.订单行可以无关紧要,直接删除
#3.销售金额格式不对,(万元,元,逗号问题),数据类型转成float
data.drop_duplicates(keep='first',inplace=True)
#删除重复记录,如果遇到重复,保留第一行,并在原数据上修改
data.dropna(axis=0,how='any',inplace=True)
#删除缺失值(na,删除持有na的整行数据,默认值:axis=0按行删除,how='any‘一行只要有一个’na就可以删除,‘all'则要全部na删除
data.drop(columns=['订单行'],inplace=True,axis=1)
#axis=1按列删除
print(data.info())
#删除订单行(重复运行行会报错,因为第一次已经删除了订单行这一列
data.reset_index(drop=True,inplace=True)
#更新索引(drop=True:把原来的索引index列删除,重置一个index
data.drop_duplicates(keep='first',inplace=True)
#删除重复记录,如果遇到重复,保留第一行,并在原数据上修改