数据分析学习笔记
数据分析学习笔记
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版权协议,转载请附上原文出处链接和本声明。