Teyisang

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()

  

 

分类:

技术点:

相关文章:

  • 2021-12-13
猜你喜欢
  • 2021-08-10
  • 2021-07-09
  • 2021-09-20
  • 2022-12-23
  • 2021-12-20
  • 2021-11-22
  • 2022-01-05
相关资源
相似解决方案