数据清洗步骤
pandas 数据清洗步骤
拿到数据之后,第一步是什么?
加载数据到pandas,查看数据结构。data.head(),data.info, data.shape().
第二步,处理空值
处理空值第一步,先查看空值的结构。 data.isnull().sum()
根据数据分析的需要,如果空值所在数据行有修复可能和保存必要,就去修复(比如 填充前后行的数据,用均值填充等)
如果没有保留必要,就删除空值所在数据行data.dropna(axis=0,inplace=True), data,reset_index(drop=True,inplace=True)
处理重复值
data.drop_duplicates(inplace=True), data.reset_index(drop=True,inplace=True)
第三步, 转换字段类型
通常是时间类型的数据需要转换,通常我们日期时间加载到Pandas之后会以int,或者str类型存在
real_time = []
for i in data['time']:
timeArray = time.localtime(i):
otherStyleTime = time.strftime('%Y-%m-%d %H:%M:%S',timeArray)
real_time.append(otherStyleTime)
data['real_time'] = real_time
data.drop(labels='time',inplace=True,axis=1)
data['real_time'] = pd.to_datetime(data['real_time'])
时间类中既有日期也有具体的时分秒,有时候我们需要将日期和时间分开 方便统计。
data['H'] = data.real_time.dt.hour # real_time 必须是时间格式才能调用dt
data['date'] = data.real_time.dt.date
data['date'] = data.date.astype('str')
对于有时间日期参与的数据分析,我们可以查看时间的格式,如果只有某几个时间不连续,我们可以删除这些差异值
data.date.unique() # 查看日期,差异非常大的日期值 我们删除掉
只有一个时间是2月份的,其它都是连续的日期
data.drop(labels = data.loc['data.date = '2067-02-21'].index,inplace = True)
data.reset_index(drop=True,inplace = True)
data.shape()