数据分析学习笔记

数据分析学习笔记

1、数据分析

明确的分析目的就像是瞄准了正确的靶心,才能使后续的动作有意义。

2、数据清洗

数据清洗的步骤:

​ 数据读写——数据探索与描述——数据的处理

2.1、数据读写

import pandas as pd
#CSV格式数据读取
pd.read_csv('文件路径')
#excel格式数据读取
pd.read_excel('文件路径')

2.2、 数据探索与描述

#数据集整体概况
df.info()
#数据集简单统计描述
df.describe()

2.3、 数据预处理

2.3.1、数据简单处理

去除空格
#去除单个数据前后空格
x.strip()

#去除所有数据前后空格
[x.strip() for x in xxx]

英文字母大小写转换
#英文字母小写转换为大写
str.upper()

#大写转换为小写
str.lower()

2.3.2、重复值的处理

#寻找重复值
df.duplicated()
'''
duplicated函数在使用过程中的注意事项:
	1、当两条记录中所有的数据都相等时duplicated函数才会判断为重复值;
	2、duplicated支持从前向后,和从后向前两种重复值查找模式;
	3、默认是从前向后进行重复值的查找和判断,也就是后面的条目在重复值判断中显示为True;
'''
#寻找独立集
set(list())

#剔除重复值
df.drop_duplicates()

'''
    drop_duplicates参数就四个,subset,keep,inplace,ignore_index
    subset:列的标签,或者传入一个标签列表,subset=['a','b']这种,只有指定列都重复的时候才会删除。
    keep:选择需要保留的重复值,有三个选项, - first:保留第一次出现的行 - last:保留最后一次出现的行 - False:全删掉
    inplace:传入布尔值,执行删除后,是否把结果赋值给原变量。比如df.drop_duplicates()之后,你可以选择将结果赋值给新的变量data=df.drop_duplicates(),也可以通过inplace参数,df.drop_duplicates(inplace=True),自动将结果赋值给df。
    ignore_index:传入布尔值,默认是False,就是是否重置索引,从0开始往下排。
'''
#索引重置
df.index = range(df.shape[0])

2.3.3、缺失值处理

  • 删除缺失值
  • 均值填补法
  • 向前填充/向后填充
  • 模型填补法(如随机森林)
#查看缺失值
df.isnull()

#查看不是缺失值的数据
df.notnull()

#删除缺失值
df.dropna()

#填补缺失值
df.fillna()

2.3.4、异常值处理

  • 删除异常值的记录
  • 作为缺失值处理
  • 平均值修正、盖帽法修正
  • 不处理:业务分析挖掘价值

2.3.5、文本字符串的处理

  • 去除前后空格处理
  • 处理中间有, ()之类的数据
  • 正则表达式提取所需数据

2.3.6、时间格式序列的处理

  • 将系统时间格式化
  • 系统时间和时间戳相互转化
  • 年月日的提取

2.3.7 、数据提取与筛选

#增加索引
df.index = 

#增加列
df.new_col = 

#删除特定列
df.drop(columns = 'col_name')

#根据索引删除特定行(如第一行)
df.drop(index = 1,axis = 1)

#根据索引删除特定几行
df.drop(index = [1,2,3],axis = 1)

#查看列中是否存在XX数据
df['col'].isin('xx')

2.3.8、数据排序

#数值排序,从小到大,单列值
df.sort_values(by='col')

#数值排序,从小到大,两列值
df.sort_values(by='col_1','col_2')

#数值排序,从大到小
df.sort_values(by='col',ascending = False)

2.3.9、 数据汇总

#按照col_1分组,显示col_2的平均数
df.groupby(['col_1'])['col_2'].mean()

版权声明:本文为weixin_37700945原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。